2 回答
TA贡献1796条经验 获得超4个赞
问题是如果数组中的第一个元素是 min,它永远不会被记录到结果数组中。尝试:
static int[] minimum(int[][] arr) {
int[] result = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
result[i] = arr[i][0];
for (int j = 1; j < arr[i].length; j++) {
if (arr[i][j] < result[i]) {
result[i] = arr[i][j];
}
}
}
return result;
}
请注意,上述函数的输入矩阵中每行至少需要一个元素;Integer.MIN_VALUE如果您愿意,可以添加条件或用于处理空行。
TA贡献1784条经验 获得超7个赞
这应该有效。您每次都将 min 重置为第一个元素。因此,您基本上是在比较是否有任何值小于第一个值。
static int[] minimum(int[][] arr){
int[] result = new int [arr.length];
for (int i = 0; i < arr.length; i++){
result[i] = Integer.MAX_VALUE;
for(int j = 0; j < arr[i].length; j++){
if(arr[i][j] < result[i]) {
result [i] = arr[i][j];
}
}
}
return result;
}
添加回答
举报