找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点。)java
时间: 2023-04-25 16:00:07 浏览: 587
鞍点是指一个二维数组中的某个元素,在该行上是最大的,在该列上是最小的。以下是一个Java程序来找出一个二维数组的鞍点:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 一个3x3的二维数组
int row = -1; // 鞍点所在的行
int col = -1; // 鞍点所在的列
// 遍历每一行
for (int i = ; i < matrix.length; i++) {
int max = matrix[i][]; // 当前行的最大值
int maxIndex = ; // 当前行最大值的索引
// 找出当前行的最大值
for (int j = 1; j < matrix[i].length; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
maxIndex = j;
}
}
// 判断当前行最大值是否也是该列的最小值
boolean isMin = true;
for (int k = ; k < matrix.length; k++) {
if (matrix[k][maxIndex] < max) {
isMin = false;
break;
}
}
// 如果是鞍点,则记录行和列
if (isMin) {
row = i;
col = maxIndex;
break;
}
}
// 输出鞍点的位置
if (row == -1 || col == -1) {
System.out.println("该二维数组没有鞍点");
} else {
System.out.println("鞍点的位置是:第" + (row + 1) + "行,第" + (col + 1) + "列,值为" + matrix[row][col]);
}
}
}
```
以上程序输出的结果为:
```
鞍点的位置是:第2行,第2列,值为6
```
因为在第2行第2列的元素6是该行的最大值,同时也是该列的最小值,因此它是该二维数组的鞍点。
阅读全文