java中找出一个2维数组的鞍点,即该位置的元素在该行上最大,该列最小,也可能没有鞍点。
时间: 2024-03-25 12:39:28 浏览: 69
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小 也可能没有鞍点
可以使用两个嵌套的for循环遍历整个二维数组,对于每个元素,分别判断它是否是该行上的最大值和该列上的最小值。如果是,则该元素就是一个鞍点。
以下是Java代码实现:
```java
public static void findSaddlePoint(int[][] arr) {
boolean found = false;
for (int i = 0; i < arr.length; i++) {
int rowMax = arr[i][0];
int colIdx = 0;
for (int j = 1; j < arr[i].length; j++) {
if (arr[i][j] > rowMax) {
rowMax = arr[i][j];
colIdx = j;
}
}
boolean isSaddlePoint = true;
for (int k = 0; k < arr.length; k++) {
if (arr[k][colIdx] < rowMax) {
isSaddlePoint = false;
break;
}
}
if (isSaddlePoint) {
System.out.println("Saddle point found at (" + i + ", " + colIdx + ")");
found = true;
}
}
if (!found) {
System.out.println("No saddle point found.");
}
}
```
其中,`arr`表示要查找鞍点的二维数组。如果找到了鞍点,则输出它的行列坐标;如果没有找到,则输出提示信息。
阅读全文