我有两个数组,max_of_row(存储每行中的最大值)和 min_of_col(存储每个列中的最小值)。
我将它们初始化为 max_of_row = [] 和 min_of_col = []。
这就是我现在填写的方式:
max_rows = []
min_cols = []
for i in 0..mat.length-1
for j in 0..mat[0].length-1
val = mat[i][j]
max_rows[i] = [max_rows[i] || val, val].max
min_cols[j] = [min_cols[j] || val, val].min
end
end
我正在使用它看起来很奇怪: [max_rows[i] || val,val].max。有没有更好的方法来做到这一点?
在我有之前:
if max_rows[i].nil? || max_rows[i] < val
max_rows[i] = val
end
if min_rows[j].nil? || min_cols[j] > val
min_cols[j] = val
end
哪个(我认为)更糟,因为它更长。我应该尝试改变这些是对的吗?如果是这样,有没有更好看的方法来做到这一点?
编辑
下面是一个数组示例:
mat =
[[2, 5, 10],
[3, 4, 7],
[6, 10, 9]]
编辑
以下是预期值:
max_of_row = [10, 7, 10]
min_of_col = [2, 4, 7]