所以我的问题是,在我的代码中,它说int min = a2 [0] [0]为什么它必须像那样而不是使用int min = 0;当我有它打印出0,但[0] [0]它打印出正确答案..所以我只是好奇为什么需要使用?谢谢! :)
public static int min2DArray(int[][] a2) {
int min = a2[0][0];
for (int row = 0; row < a2.length; row++) {
for (int column = 0; column < a2[row].length; column++){
if (a2[row][column] < 1){
min = a2[row][column];
}
}
}
return min;
}
答案 0 :(得分:1)
您的代码有错误:
if (a2[row][column] < 1){
应该是:
if (a2[row][column] < min){
如果您的数据包含3, 7, 9
并且您将min
初始化为0
,那么这些数据都不会低于初始值,结果会得到0
。
您可以将min
初始化为Integer.MAX_VALUE
,您可以,或者您可以将其初始化为第一个值,即
int min = a2[/*row=*/0][/*column=*/0];
答案 1 :(得分:0)
如果您的2D数组有任何负值,int min = 0
将不准确。实际上,如果任何大于0的值都是您的实际最小值,那么您的代码也不会起作用。你只有一个幸运案例,你的分数是0。