增补博客 第二十一篇 python 查找鞍点

【题目描述】对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。
提示:鞍点的特点:列上最小,行上最大。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】输入5行5列整数,同行数据间以空格为间隔。
【输出格式】在一行中以以下格式输出矩阵中的所有鞍点,每个鞍点的显示格式为:
[<鞍点的行坐标>,<鞍点的列坐标>,<鞍点的值>]
【输入样例】11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 8
15 10 11 20 25
【输出样例】[4,1,8][4,5,8]

def find_saddle_points(matrix):
    saddle_points = []
    for i in range(len(matrix)):
        row_max = max(matrix[i])
        max_indexes = [index for index, value in enumerate(matrix[i]) if value == row_max]
        for j in max_indexes:
            column_values = [matrix[row][j] for row in range(len(matrix))]
            if matrix[i][j] == min(column_values):
                saddle_points.append((matrix[i][j], i+1, j+1))
    return saddle_points

# 用户输入矩阵
print("请输入一个5x5的整数矩阵:")
user_matrix = []
for i in range(5):
    row = list(map(int, input().split()))
    user_matrix.append(row)

saddle_points = find_saddle_points(user_matrix)
if saddle_points:
    print("鞍点信息:")
    for point in saddle_points:
        print(f"值:{point[0]},行坐标:{point[1]},列坐标:{point[2]}")
else:
    print("没有找到鞍点。")

  

posted @ 2024-06-14 12:32  财神给你送元宝  阅读(10)  评论(0编辑  收藏  举报