要在矩阵中找到最大整数值,我尝试编写其中的一些:
/*
* @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;
}
我的问题是:
答案 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;
}