算法 <矩阵中的幸运数> java暴力破解

落日映苍穹つ 2023-01-19 09:47 23阅读 0赞

要求如下

在这里插入图片描述

解题思路

二维数组是普通数组的数组
例:int[][] matrix = { {7, 8}, {1, 2}};
就是存储{7, 8}和{1, 2}这两个数组的数组

先把每个数组最小的数找出
再把最小的数拿去和其他数组中下标相同的值比较

代码

  1. class Solution {
  2. public List<Integer> luckyNumbers (int[][] matrix) {
  3. int rowsLen = matrix.length; // 数组的个数
  4. int colsLen = matrix[0].length; // 每个数组的长度
  5. HashMap<Integer, Integer> minNumber = new HashMap<Integer, Integer>();
  6. int minJudgment = 0; // 记录最小的数字
  7. int minIndex = 0; // 记录最小数的索引
  8. List<Integer> result = new ArrayList<Integer>();
  9. // 先把每个数组最小的数找出
  10. // 再把最小的数拿去和其他数组中下标相同的值比较
  11. // 遍历出所有数组
  12. for (int i = 0; i < rowsLen; i++) {
  13. // 遍历出每个数组中,最小的数
  14. minJudgment = matrix[i][0]; // 先保存数组中的第一个数
  15. minIndex = 0; // 保存数组中的第一个数的下标,就是0
  16. for (int j = 1; j < colsLen; j++) {
  17. // 从第二个数开始,和前一位比较,保存较小的数
  18. if (matrix[i][j] < minJudgment) {
  19. minJudgment = matrix[i][j];
  20. minIndex = j;
  21. }
  22. }
  23. // 将该数和其他数组里相同下标的数字比较,只要小于其中一个数,就不添加这个数字
  24. for (int j = 0; j < rowsLen; j++) {
  25. // 判断是否小于其他数组的数字
  26. if (minJudgment < matrix[j][minIndex]) {
  27. minJudgment = -1; // 小于其他数组的数组,代表不是幸运数,用-1标记
  28. break;
  29. }
  30. }
  31. // 是-1标记的数,代表不是幸运数,就不添加该数
  32. if (minJudgment != -1) {
  33. result.add(minJudgment);
  34. }
  35. }
  36. return result;
  37. }
  38. }

发表评论

表情:
评论列表 (有 0 条评论,23人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux 防止ssh暴力方法

    上两个星期发生了一件事情,让我感觉到安全是多么的重要,因为租了一天学生机Linux作为服务器,没想到用了没两个月就出现问题了。给外国黑客ssh暴力破解,然后安装挖矿病毒,导致c