当前位置: 首页 > 知识库问答 >
问题:

在Java数组的第一列中查找最大的数字

澹台正业
2023-03-14

我有一个阵列

int [ ][ ] matrix = {{ 10, 23, 93, 44 },{ 22, 34, 25, 3 },{ 84, 11, 7, 52 }};

我想找到数组第一列的最大值,84

这是我的整个代码,它给我这个数组中每列的最大值

     public class Sample {  
  public static void main(String[] args) {

int[][] matrix = {{10, 23, 93, 44}, {22, 34, 25, 3}, {84, 11, 7, 52}};

int[] max = matrix[0];

for (int row = 1; row < matrix.length; row++) {
    
    for (int column = 0; column < matrix[0].length; column++) {
        
        if (matrix[row][column] > max[column]) {
            
            max[column] = matrix[row][column];
        }
    }
}
for (int number : max) {
    System.out.print(number + " ");
    }
}}

共有2个答案

甘英光
2023-03-14

如果只需要找到一列的最大值,则不需要嵌套循环:

static int maxOfFirstColumn(int[][] arr) {
    int max = Integer.MIN_VALUE;
    for (int[] row : arr) {
        if (null != row && row.length > 0) {
            max = Math.max(max, row[0]);
        }
    }
    return max;
}

使用流API的解决方案:

static int maxOfFirstColumn(int[][] arr) {
    return Arrays.stream(arr) // Stream<int[]>
        .filter(Objects::nonNull)
        .filter(row -> row.length > 0)
        .mapToInt(row -> row[0]) // IntStream
        .max()
        .getAsInt();
}
松琦
2023-03-14
public static void main(String[] args) {
  int[][] matrix = {{10, 23, 93, 44}, {22, 34, 25, 3}, {84, 11, 7, 52}};

  int max = matrix[0][0];
  for (int row = 1; row < matrix.length; row++) {
    if (max < matrix[row][0]) {
      max = matrix[row][0];
    }
  }
  System.out.println(max);
}
 类似资料:
  • 问题内容: 我只是在练习一些MIT Java作业。但是,我不确定如何找到第二大数字。http://ocw.csail.mit.edu/f/13 问题答案: 仅对数组进行排序以查找订单统计信息太浪费了。您可以通过遵循与现有算法相似的算法找到第二大元素,并使用一个代表第二大数字的附加变量。 当前,下一个元素可以大于最大值或等于/小于最大值,因此单个元素就足够了: 考虑两个变量,下一个元素可能是 大于最

  • 使用while循环,我必须执行以下操作: 使用变量“I”,计算输入的整数数量;使用变量“number”,表示输入的数字;使用变量“min”,表示迄今为止输入的最小数字;使用变量“max”,表示迄今为止输入的最大数字 用户将总共输入5个整数。 这是我的代码: 当我运行这个时,“I”、“number”和“maximum”变量似乎都能正常工作。但是,“minimum”变量要记住,“minimum”的设置

  • 问题内容: 给定一个未排序的数组,您需要找到数组中o(n) 时间复杂度第二大的元素。 例如: 问题答案: 您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o ( nlogn ) 时间内完成, 算法: 用最小可能值初始化最高和第二最高。 迭代数组。 如果当前元素大于最高 分配 secondHighest = 最高 分配最高 = currentElement 否则如果当前元素大于 se

  • 问题内容: 我很难理解在数组中找到第二大数字的方法背后的逻辑。所使用的方法是在数组中找到最高的,但小于先前最高的(已经找到)。我仍然不明白的是为什么有必要。例如,我输入了三个数字:98、56、3。没有它,最高和第二高将都是98。请解释。 问题答案: 找到第二高实际上很简单: 这是O(N)一口气。如果你想接受联系,则更改为,但是如果数组中至少有2个元素,它将返回。如果数组仅包含相同的数字,它也将返回

  • 问题内容: 我们需要在分配中递归地找到一个数组中的第二个最小整数。但是,为了更好地理解该主题,我想先通过本网站进行迭代,然后自己进行递归。 不幸的是,迭代地进行相当混乱。我知道该解决方案很简单,但我无法解决。 到目前为止,以下是我的代码: 这适用于一些数字,但不是全部。数字会变化,因为内部if条件的效率不如外部if条件的效率。 禁止阵列重排。 问题答案: 试试这个。当最小的数字是第一个时,第二个条

  • 在一个14节点的Google Dataproc集群中,我有大约600万个名字,它们被两个不同的系统转换为ID:和。每个包含、和。我的目标是生成从到的映射,以便对于每个,对应的是附加到的所有名称中最常见的id。 让我们试着用一个例子来澄清一下。如果我有以下行: 我的目标是生成从到的映射。实际上,与关联的名称是、和,它们分别映射到、,因此是与关联的名称中最常见的映射。同样,将映射到。假设总会有赢家是可