2024.5.16
【题目描述】对于给定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, row in enumerate(matrix):
# 找到该行最大值及其列索引
max_in_row = max(row)
max_index = row.index(max_in_row)
# 判断最大值是否也是该列的最小值
if max_in_row == min(matrix[j][max_index] for j in range(len(matrix))):
saddle_points.append([i + 1, max_index + 1, max_in_row])
return saddle_points
# 输入5x5整数矩阵
matrix = []
for _ in range(5):
row = list(map(int, input().split()))
matrix.append(row)
# 查找鞍点并输出
saddle_points = find_saddle_points(matrix)
for point in saddle_points:
print(f"[{point[0]},{point[1]},{point[2]}]", end='')
# 检查是否有鞍点,若没有,输出提示信息
if not saddle_points:
print("No saddle points found.")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通