Java求二维数组的鞍点
时间: 2024-06-16 18:02:57 浏览: 127
求一个二维数组的鞍点
在Java中,二维数组的鞍点是指在数组中找到一个元素,该元素在所在行中是最大的,而在所在列中是最小的。以下是求二维数组鞍点的步骤:
1. 遍历二维数组,找到每一行的最大值,并记录下最大值的值和所在列的索引。
2. 遍历二维数组,对于每一个元素,判断其是否是所在行的最大值,并且是否是所在列的最小值。如果是,则该元素为鞍点。
3. 输出或者保存所有的鞍点。
下面是一个示例代码来求解二维数组的鞍点:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
findSaddlePoints(matrix);
}
public static void findSaddlePoints(int[][] matrix) {
int rows = matrix.length;
int cols = matrix[0].length;
for (int i = 0; i < rows; i++) {
int maxInRow = matrix[i][0];
int colIndex = 0;
// 找到每一行的最大值及其所在列的索引
for (int j = 1; j < cols; j++) {
if (matrix[i][j] > maxInRow) {
maxInRow = matrix[i][j];
colIndex = j;
}
}
// 判断是否是鞍点
boolean isSaddlePoint = true;
for (int k = 0; k < rows; k++) {
if (matrix[k][colIndex] < maxInRow) {
isSaddlePoint = false;
break;
}
}
// 输出鞍点
if (isSaddlePoint) {
System.out.println("鞍点坐标:(" + i + ", " + colIndex + ")");
}
}
}
}
```
运行以上代码,输出结果为:
```
鞍点坐标:(2, 0)
```
阅读全文