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

时间:2015-06-03 15:24:47

标签: java matrix integer max

要在矩阵中找到最大整数值,我尝试编写其中的一些:

/*
 * @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;
}

我的问题是:

  • 为什么我要将变量分配给数组中的下一个?
  • 有什么条件和原因?

3 个答案:

答案 0 :(得分:3)

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
}

答案 1 :(得分:2)

我建议这个

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

答案 2 :(得分:1)

你需要在你的循环中使用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;
}