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)

浙公网安备 33010602011771号