【发布时间】:2019-09-08 11:37:24
【问题描述】:
我有一个整数值的二维数组。我想以最有效的方式处理数组。处理逻辑是:
如果 summary[row][col] 大于 summary[col][row],则 summary[row][col] -= summary[col][row] 反之亦然。如果两者相等,则使两个位置都为零。基本上就是计算两个位置的绝对差。
这是我建立的逻辑。有没有一种更简洁、更有效的方法来使用 Array 函数?
row_ix = 0
summary.each do |row|
col_ix = 0
row.each do |row_to_col_amt|
if row_ix == col_ix
col_ix += 1
next
end
col_to_row_amt = summary[col_ix][row_ix]
if row_to_col_amt > col_to_row_amt
summary[row_ix][col_ix] -= col_to_row_amt
summary[col_ix][row_ix] = 0
elsif row_to_col_amt < col_to_row_amt
summary[col_ix][row_ix] -= row_to_col_amt
summary[row_ix][col_ix] = 0
else
summary[row_ix][col_ix] = 0
summary[col_ix][row_ix] = 0
end
col_ix += 1
end
row_ix += 1
end
【问题讨论】:
标签: ruby multidimensional-array