找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点。)
1 回答
已采纳
蜂之谷
TA贡献564条经验 获得超863个赞
int[][] arr = { { 2, 43, 4, 8 },
{ 1, 35, 44, 9 },
{ 12, 33, 4, 18 },
{ 2, 53, 4, 68 }
};
for (int i = 0; i < arr.length; i++) {
int max = arr[i][0];
int index = 0;
for (int j = 1; j < arr[i].length; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
index = j;
}
}
int min = arr[i][index];
int tempMin = arr[i][index];
for (int k = 0; k < arr.length; k++) {
if (tempMin > arr[k][index]) {
tempMin = arr[k][index];
}
}
if (min == tempMin) {
System.out.println("第"+i+"行有鞍点:值为:arr["+i+","+index+"]="+max);
}else{
System.out.println("第"+i+"行无鞍点");
}
}添加回答
举报
0/150
提交
取消
