使用 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;
}
}
}
为了找到矩阵中的最大整数值,我尝试编写其中的一些代码:
/*
* @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;
}
}
}