用JAVA写一个程序:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点
时间: 2023-11-06 21:03:48 浏览: 101
下面是一个JAVA程序,可以找出一个二维数组中的鞍点:
```java
public class FindSaddlePoint {
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int row = matrix.length;
int col = matrix[0].length;
boolean hasSaddlePoint = false;
for (int i = 0; i < row; i++) {
int maxInRow = matrix[i][0];
int maxInColIndex = 0;
for (int j = 0; j < col; j++) {
if (matrix[i][j] > maxInRow) {
maxInRow = matrix[i][j];
maxInColIndex = j;
}
}
boolean isSaddlePoint = true;
for (int k = 0; k < row; k++) {
if (matrix[k][maxInColIndex] < maxInRow) {
isSaddlePoint = false;
break;
}
}
if (isSaddlePoint) {
hasSaddlePoint = true;
System.out.println("The saddle point is at (" + i + ", " + maxInColIndex + ") with value " + maxInRow);
}
}
if (!hasSaddlePoint) {
System.out.println("There is no saddle point in the matrix.");
}
}
}
```
这个程序首先定义了一个二维数组 `matrix`,然后遍历了每一行,对于每一行,找到该行上的最大值及其所在列的索引,然后再遍历每一行,判断该列上的所有元素是否都小于等于该行上的最大值,如果是,则说明该位置是一个鞍点,输出其坐标及值。如果所有行都没有鞍点,则输出提示信息。
阅读全文