【发布时间】:2013-05-12 18:30:11
【问题描述】:
我有两个数组,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]
【问题讨论】:
-
给我们两个输入数组
-
好的!你想要的预期输出是什么?上面写的地方。我们没有时间分析您的代码。
标签: ruby coding-style