具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。
时间: 2023-12-04 15:54:19 浏览: 225
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小 也可能没有鞍点
我们可以使用两个数组来记录每行的最大值和每列的最小值,然后遍历整个数组,找到鞍点即可。
具体实现如下:
```python
m, n = map(int, input().split()) # 输入二维数组的行数和列数
array = []
for i in range(m):
row = list(map(int, input().split())) # 输入每一行的元素
array.append(row)
# 记录每行的最大值和每列的最小值
max_rows = [max(row) for row in array]
min_cols = [min(array[i][j] for i in range(m)) for j in range(n)]
# 遍历整个数组,找到鞍点
saddle_points = []
for i in range(m):
for j in range(n):
if array[i][j] == max_rows[i] and array[i][j] == min_cols[j]:
saddle_points.append((i, j))
# 输出所有鞍点的位置
if saddle_points:
for point in saddle_points:
print("Saddle point found at ({}, {})".format(point[0], point[1]))
else:
print("No saddle point found.")
```
例如,对于输入:
```
3 3
1 2 3
4 5 6
7 8 9
```
输出为:
```
Saddle point found at (1, 0)
```
阅读全文