|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼给的代码是这样的
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] = matrix[i][j] if matrix[i][j] < min_row[i] else min_row[i] # min(matrix[i][j], min_row[i])
max_col[j] = matrix[i][j] if matrix[i][j] > max_col[j] else 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])
我不理解的地方是这个两层循环体
我理解在第二层循环体中i的值是给到,知道第二层循环体结束循环i的值才会发生变化
所以我理解matrix[i][j]的循环中的值会出现 [0][0] [0][1] [0][2] [1][0] [1][1] [1][2] [2][0] [2][1] [2][2]这样
用来找行的最小值我可以理解 但是我不理解怎么可以找到列的最大值呢 max_col[j] = matrix[i][j] if matrix[i][j] > max_col[j] else max_col[j] # max(matrix[i][j], max_col[j]) 中的matrix[i][j]都是行的值 也就是找行的最大值
我自己想的是 再多写一层 但又不出来结果 实在想不出来了想请求大佬指导
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] = matrix[i][j] if matrix[i][j] < min_row[i] else min_row[i]
for x in range(col):
for y in range(row):
max_col[y] = matrix[y][x] if matrix[y][x] > max_col[y] else max_col[y]
# 遍历矩阵中的每一个元素
# 判断是否同时满足“同一行的所有元素中最小”和“同一列的所有元素中最大”
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])
|
|