找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。
时间: 2023-11-06 10:16:15 浏览: 103
一个二维数组的鞍点可以通过以下步骤找到:
1. 找到每一行中的最大元素。
2. 找到每一列中的最小元素。
3. 检查每个元素是否同时为其行中的最大元素和其列中的最小元素。如果是,则该元素为鞍点。
以下是一个 Python 代码示例:
```python
def saddle_point(matrix):
# 找到每一行中的最大元素
row_max = [max(row) for row in matrix]
# 找到每一列中的最小元素
col_min = [min(col) for col in zip(*matrix)]
# 检查每个元素是否为其行中的最大元素和其列中的最小元素
for i, row in enumerate(matrix):
for j, elem in enumerate(row):
if elem == row_max[i] and elem == col_min[j]:
return (i, j, elem) # 返回鞍点的位置和值
return None # 没有鞍点
# 示例使用
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(saddle_point(matrix)) # 输出 (0, 2, 3)
```
在上面的示例中,二维数组的鞍点是 (0, 2, 3),即位于第一行第三列的元素 3。它是第一行中的最大元素,第三列中的最小元素。
阅读全文