使用 Java 查找矩阵中包含的最大整数值

Finding the maximum integer value contained in a matrix using Java

为了找到矩阵中的最大整数值,我尝试编写其中的一些代码:

/*
 * @param ints
 * @return the max value in the array of chars
 */

public static int maxMatrix(int [][] ints) {
    int max = ints[0][0];

    for(int i = 0; i < ints.length; i++) {
        for(int j = 0; j < ints.length){
            max = inst[i][j];
        }
    }
    return max;
}

我的问题是:

max = inst[i][j];

应该是max = Math.max(max, ints[i][j]);

和...

for(int j = 0; j < ints.length){

应该是for(int j = 0; j < ints[i].length; j++){

所以...

public static int maxMatrix(int [][] ints) {
    int max = ints[0][0];

    for(int i = 0; i < ints.length; i++) {
        for(int j = 0; j < ints[i].length; j++){
            max = Math.max(max, ints[i][j]);
        }
    }
    return max;
}

你需要做 Math.max。否则你只是将变量分配给数组中的下一个

Math.max(max, ints[i][j]) 等价于:

if (max > ints[i][j] {
  return ints[i][j];  // or inline in your loop: max = ints[i][j];
} else {
  return max;         // or inline in your loop: max = max; which is a not needed
}

您需要在循环中使用 if 语句才能使其正常工作。您还需要检查数组第二部分的长度。

public static int maxMatrix(int [][] ints) {
int max = ints[0][0];

for(int i = 0; i < ints.length; i++) {
    for(int j = 0; j < ints[].length){
        if(inst[i][j] > max){
            max = inst[i][j];
        }
    }
  }
  return max;
}

我建议这个

    for (int[] a : ints) {
        for (int e : a) {
            if (e > max) {
                max = e;
            }
        }
    }