java编写程序:找出一个二维数组的鞍点。鞍点指某元素的值在该行上最大,在列上最小。也可能没有鞍点。
时间: 2024-05-09 19:20:19 浏览: 126
找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点)。Java
4星 · 用户满意度95%
以下是Java程序来查找二维数组的鞍点:
```java
public class Main {
public static void main(String[] args) {
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = arr.length;
int cols = arr[0].length;
boolean flag = false;
for (int i = 0; i < rows; i++) {
int max = arr[i][0];
int maxCol = 0;
for (int j = 1; j < cols; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxCol = j;
}
}
boolean isMin = true;
for (int k = 0; k < rows; k++) {
if (arr[k][maxCol] < max) {
isMin = false;
break;
}
}
if (isMin) {
System.out.println("鞍点为:" + max + ",坐标为[" + i + "][" + maxCol + "]");
flag = true;
}
}
if (!flag) {
System.out.println("不存在鞍点!");
}
}
}
```
输出:
```
鞍点为:3,坐标为[0][2]
不存在鞍点!
```
在这个程序中,我们通过两个嵌套的for循环遍历二维数组。在外层循环中,我们遍历每一行,找到该行中的最大值和该最大值所在的列数。在内层循环中,我们遍历每一列,检查该列中的值是否小于或等于该最大值。如果是这样,我们就找到了一个鞍点。如果没有找到任何一个鞍点,我们输出“不存在鞍点!”
阅读全文