我有两个数组,max_of_row(它存储每行中的最大值)和min_of_col(它存储每个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
这(我认为)是更糟,因为它是更长的时间。我是否应该尝试改变这些?如果是这样,有没有更好的方式来做到这一点?
EDIT
下面是一个阵列的一个例子:
mat =
[[2, 5, 10],
[3, 4, 7],
[6, 10, 9]]
EDIT
以下是预期值:
max_of_row = [10, 7, 10]
min_of_col = [2, 4, 7]
给我们2个输入数组 – 2013-05-12 18:31:05
好吗!你想要的输出是什么?它在上面写着。我们没有时间分析你的代码。 – 2013-05-12 18:48:27