阿里2018校招编程题
来源:互联网 发布:淘宝个体户营业执照 编辑:程序博客网 时间:2024/05/17 23:46
找朋友组队,输入一个N*N的二维数组,数组由0和1组成。第i行第j列的数据为1,表示i与j是朋友,可以一起组队,如M[1]和M[2],M[2]的朋友也可以加入到该队中,只要有朋友关系的都可以加入到同一对,而M[3]只能自己组队,因此最少需要组的对数是2.
M[1] = (1,1,0)
M[2] = (1,1,0)
M[3] = (0,0,1)
import java.util.*;public class Main { static int findCircleNum(int[][] M) { int num=0; ArrayList F = new ArrayList(); for(int i=0;i<M.length;i++){ if(F.contains(i)){//如果i已经在已组队队列中了,直接跳出 break; } boolean flag = false;//用于判断i加入已组队序列是否是利用朋友关系进入一个队 for(int j=0;j<M[i].length;j++){ if(M[i][j]==1 && i!=j){ if(F.contains(j)){ //判断i的朋友j是否已组队成功,是则跳出循环,因为i可以和j在同一个队,无需开一个新队 F.add(i); //i组队成功,加入已组队序列 flag = true; break; } } if(j == M[i].length-1){ //如果遍历到最后一个数,还没有组队成功,i开设一个新队,并加入已组队序列 F.add(i); } } if(flag==false){ //如果i的朋友都还没有组过队,则队数加一 num++; } } return num; } public static void main(String[] args){ Scanner in = new Scanner(System.in); int res; int _M_rows = 0; int _M_cols = 0; _M_rows = Integer.parseInt(in.nextLine().trim()); _M_cols = Integer.parseInt(in.nextLine().trim()); int[][] _M = new int[_M_rows][_M_cols]; for(int _M_i=0; _M_i<_M_rows; _M_i++) { String row_x=String.valueOf(in.nextLine().trim()); String[] row_y=row_x.split(","); for(int _M_j=0; _M_j<_M_cols; _M_j++) { _M[_M_i][_M_j] = Integer.parseInt(row_y[_M_j]); } } if(in.hasNextLine()) { in.nextLine(); } res = findCircleNum(_M); System.out.println(String.valueOf(res)); }}
阅读全文
0 0
- 阿里2018校招笔试编程题
- 阿里2018校招编程题
- 阿里2018校招客户端研发笔试之编程题
- 阿里校招在线编程题
- 阿里秋招编程题
- 2018秋招-阿里内推编程题
- 阿里校招笔试题
- 2018阿里校招算法题--求曲线面积
- 阿里2014校招笔试题
- 阿里校招前端笔试题小结
- 阿里校招前端笔试题小结
- 2018阿里秋招在线编程题(Java开发工程师)
- 2018阿里秋招C/C++研发编程题——字符串处理
- 阿里校招笔试
- 阿里校招面试
- 阿里秋招在线笔试两道编程题
- 阿里巴巴2018校招编程测试题
- 拼多多2018校招编程题
- C++创建不定长数组并求连续子数组最大和/排序
- LUCAS定理简述
- STL的erase()陷阱-迭代器失效总结
- dialog progressdialog alertdialog 焦点等
- Hibernate框架笔记之数据表关联关系
- 阿里2018校招编程题
- 回归预测评估指标
- JSON转换出现错误:net.sf.json.JSONException: Unterminated string at character 38 of
- 机器学习十大算法都是何方神圣?看完你就懂了
- 搞透C语言整型数据范围表示
- Python中的__name__属性
- VMware-bridge桥接网络连接
- WebService
- 鼠标移出事件