6.12

def find_saddle_points(matrix):
"""
查找5x5矩阵中的所有鞍点
鞍点定义:所在行的最大值,且所在列的最小值
:param matrix: 5x5的二维列表
:return: 鞍点列表,每个元素为 (行坐标, 列坐标, 值),坐标从1开始
"""
saddle_points = []
rows = len(matrix)
cols = len(matrix[0]) if rows > 0 else 0

预计算每一行的最大值

row_max = [max(row) for row in matrix]
# 预计算每一列的最小值
col_min = [min(matrix[i][j] for i in range(rows)) for j in range(cols)]

遍历矩阵中的每个元素,判断是否为鞍点

for i in range(rows):
for j in range(cols):
if matrix[i][j] == row_max[i] and matrix[i][j] == col_min[j]:
# 坐标从1开始,所以+1
saddle_points.append((i + 1, j + 1, matrix[i][j]))
return saddle_points

if name == "main":
# 读取5x5矩阵
matrix = []
for _ in range(5):
row = list(map(int, input().split()))
matrix.append(row)

查找鞍点

saddles = find_saddle_points(matrix)

按格式输出:每个鞍点为[行,列,值],拼接成一行

output_str = ""
for r, c, val in saddles:
output_str += f"[{r},{c},{val}]"
print(output_str)

posted @ 2026-06-19 20:46  Cx330。  阅读(5)  评论(0)    收藏  举报