增补博客 第二十一篇 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]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 ( "没有找到鞍点。" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步