马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 deweyoo 于 2021-8-7 00:14 编辑
求解 这个答案的解析, 尤其不太懂第17行 # 因为涉及付费内容以及给没有做题的同学提前泄露答案. 故没有贴出原题目内容, 仅贴出答案
matrix = [[10, 36, 52],
[33, 24, 88],
[66, 76, 99]]
row = len(matrix)
col = len(matrix[0])
min_row = [1024] * row
max_col = [0] * col
# 遍历矩阵中的每一个元素
# 找到每行中最小的元素,并将它们存放到列表min_row中
# 找到每列中最大的元素,并将它们存放到列表max_col中
for i in range(row):
for j in range(col):
min_row[i] = min(matrix[i][j], min_row[i])
max_col[j] = max(matrix[i][j], max_col[j])
# 遍历矩阵中的每一个元素
# 判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”
for i in range(row):
for j in range(col):
if matrix[i][j] == min_row[i] and matrix[i][j] == max_col[j]:
print(matrix[i][j])
17. max_col[j] = max(matrix[i][j], max_col[j]) # 找到每列中最大的元素,并将它们存放到列表max_col中
这里的 j 每次迭代, max_col 是否如下变化
[[0], [0], [0]]
第一次迭代
[[10], [0], [0]]
第二次迭代
[[10], [36], [0]]
第三次迭代
[[10], [36], [52]]
和注释里要达到的目的似乎不一致, 还是我对这个迭代理解有误. 烦请大佬指点, 谢谢
max_col变化如你所说,结果是对的,你可以用pycharm或vscode插断点观察每一步。
带入数据,就是3x3遍历。逐个数据分别和预设的最小值0,和最大值1024比较。
min_row里只存当前比较过的最小的,max_col只存当前比较过的最大的。
刚开始比较看不出结果,之后所有数据遍历完才能出真正的结果。
|