阿里巴巴2021校招

  static List<String> val = new ArrayList<>();public static void main(String[] args) {Scanner sc = new Scanner(System.in);//数据组数int num = sc.nextInt();int a = 1;for (int i = 0; i < num; i++) {//行数int N = sc.nextInt();//列数int L = sc.nextInt();int[][] arr = getInput(N, L, sc);int[][] targetArr = getInput(N, L, sc);getPath(arr, targetArr);}for (String s : val) {System.out.println(s);}}
//        1 测试组
//        3 2 矩阵3行2列
//        01 11 10 源矩阵
//        11 00 10 目标矩阵//输入函数public static int[][] getInput(int N, int L, Scanner sc) {int[][] arr = new int[N][L];for (int j = 0; j < N; j++) {String next = sc.next();for (int k = 0; k < L; k++) {arr[j][k] = next.charAt(k) & 1;}}return arr;}public static void getPath(int[][] arr, int[][] targetArr) {//第某列int pre = Integer.MIN_VALUE;int index = 0;if (index == 0 && getWay(arr, targetArr)) {val.add(0 + "");return;}while (true) {index++;int maxDiff = getMaxDiff(arr, targetArr);setVal(arr, maxDiff);if (getWay(arr, targetArr)) {val.add(index + "");break;}if (maxDiff == -1||maxDiff == pre || index == arr[0].length) {val.add("impossible");break;}pre = maxDiff;}}//找出最多不同的列public static int getMaxDiff(int[][] arr, int[][] targetArr) {for (int j = 0; j < targetArr[0].length; j++) {int count = 0;int targetCount = 0;for (int i = 0; i < targetArr.length; i++) {count += targetArr[i][j];}for (int i = 0; i < arr.length; i++) {targetCount += arr[i][j];}if (count + targetCount == arr.length) {return j;}}return -1;}//设置值public static void setVal(int[][] arr, int L) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[j].length; j++) {if (j == L) {if (arr[i][j] == 1) {arr[i][j] = 0;}else{arr[i][j] = 1;}}}}}//判断是否为目标矩阵public static boolean getWay(int[][] arr, int[][] targetArr) {List<String> arrList = new ArrayList<>();List<String> targetList = new ArrayList<>();for (int i = 0; i < arr.length; i++) {String str = "";for (int e : arr[i]) {str += e;}arrList.add(str);}for (int i = 0; i < targetArr.length; i++) {String str = "";for (int e : targetArr[i]) {str += e;}targetList.add(str);}boolean[] flag = new boolean[arr.length];for (String str : arrList) {//判定条件if (targetList.indexOf(str) != -1 && flag[targetList.indexOf(str)] != true) {flag[targetList.indexOf(str)] = true;}}for (boolean e : flag) {if (!e) {return false;}}return true;}

阿里巴巴2021校招相关推荐

  1. 春招来了!找个互联网IT工作试试看?2021校招公司大全!

    2021年春节还在继续,2021年的春季校园招聘也来了! 写个简历,找个互联网/软件/IT/金融科技公司试试看? 计算机校招,提供各大公司计算机相关的校园招聘信息,欢迎关注: 下面是2021年 包含 ...

  2. 2020-09-13 滴滴-2021校招在线笔试-DE数据开发试卷

    2020-09-13 滴滴-2021校招在线笔试-DE数据开发试卷 1. D星群岛 题目: D星群岛由n个小岛组成.为了加强小岛居民之间的交流,头目决定启动一个造桥工程,将全部n个岛连接到一起.由于受 ...

  3. 58同城2021校招笔试真题-前端

    58同城2021校招笔试-前端 以下代码输出: console.log([1,2,3,4,5].splice(1,2,3,4,5)); console.log([1,2,3,4,5].slice(1, ...

  4. 2021校招滴滴笔试sql

    2021校招滴滴笔试sql 题目描述 原表: id amount,order_type(不止下面三种车型,但是只取下面三种车型),payment_chnl(不止下面三种支付方式,需要取全部的支付方式) ...

  5. 富士康计算机类笔试题,富士康2021校招技术类笔试题

    富士康2021校招技术类笔试题 发布时间:2021-03-02 富士康科技集团是台湾鸿海精密集团在大陆投资兴办的高新科技企业.下面就由第一范文网小编为大家介绍一下富士康20xx校招技术类笔试题的文章, ...

  6. 华为2021校招【软件开发岗】笔+面试总结

    华为2021校招[软件开发岗]笔+面试总结 文章目录 华为2021校招[软件开发岗]笔+面试总结 个人情况 一.机试 二.综合测试 三.专业面试一 四.专业面试二 五.业务主管面试 六.总结 个人情况 ...

  7. 网易2021校招笔试

    网易2021校招笔试 第一题 第二题 第三题 第四题 第五题 第六题 第一题 Comparable和Comparator区别是什么? 1.comparable接口实际上是出自java.lang包,它有 ...

  8. 迅雷2021校招数据分析笔试题 B卷

    时间:9.28投递的迅雷数据分析岗,10.15收到笔试通知于10.19号19:00-20:35参加迅雷2021校招数据分析笔试题 B卷. 试卷回忆版:共有三种题型:单选题(20个,每个3.5分).多选 ...

  9. 美团2021校招 技术综合-后台方向-编程题随笔

    美团2021校招技术综合-后台方向在线考试 不一样的逆序数 时问限制:3000MS 内存限制:589824KB 题目描述: 小团最丘对逆序数(将一个数字逐位逆序,例如1234的逆序数为4321)特别感 ...

  10. 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试六十题(11.05)

    九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 http://blog.csdn.net/v_july_v/article/details/11921021 题记 本博客自2010年10月 ...

最新文章

  1. csu 1554: SG Value 思维题
  2. 【综述】深度长尾学习
  3. 高德地图JavaScript API开发研究
  4. 人脸登陆facelogin
  5. 阿里年薪40万老人简历:83岁精通网购,62岁会H5、PS
  6. 《伟大的小细节:互联网产品设计中的微创新思维》——3.2 时间/日期因素
  7. flutter android 权限,Flutter permission_handler 权限插件的使用详解
  8. 测试固态硬盘写入数据软件,SSD测试软件简要说明
  9. pcr扩增的原理和步骤
  10. 【Java】Java基础之Lambda表达式和Stream流
  11. c语言启动程序句柄无效,win7系统玩英雄联盟突然弹出“句柄无效”窗口的解决方法...
  12. 【富文本】如何设置U盘为第一启动项,在安装windows操作系统时如何从U盘启动?
  13. QTableWidget获取一行数据
  14. AD(altium designer)15原理图与PCB设计教程(四)——电路原理图设计进阶
  15. EPICS -- asynRecord记录使用示例
  16. 调取python背景减法库:MOG2和KNN,非常好用
  17. 【学习打卡05】可解释机器学习笔记之CAM+Captum代码实战
  18. numpy.core._exceptions.MemoryError: Unable to allocate 167. MiB for an array with shape (2970, 2460,
  19. 玄冰400或其他CPU散热器如何从AMDCPU卡扣上轻松取下
  20. 五次多项式对2R平面机器人关节的轨迹控制

热门文章

  1. 狐妖小红娘手游服务器维护,狐妖小红娘手游:游戏界面详细解析,狐妖小粉丝不要错过哦...
  2. FileBeat笔记(一)——安装和采集Springboot日志
  3. 【嵌入式蓝桥杯】程序执行完中断将不再触发 /* Go to infinite loop when Hard Fault exception occurs */
  4. 随笔misc:sd卡速率测试用例
  5. plink遗传数据质控--每个个体QC、每个marker(变异)质控、全基因组关联meta分析QC
  6. 公司来了一个low逼程序员,进程线程面试题总结
  7. 单点登录(SSO) --UCenter技术实现
  8. macd底背离的python_java尝试编写macd,试验顶背离底背离
  9. 计算机房电器设备功率密度,WP155_R0_数据中心空间和功率密度需求的计算.pdf
  10. WPS中的word如何取消英文首字母大写