ruby中的两个多维数组处理



我有一个像这样的数组

[["1"], ["2","3"]]

一开始我有这个算法

maxarray = []
i = 0
m = array.count
while i < m do
  x = 0
  s = array[i].count
  while x < s do
    maxarray[i][x] = (Integer(array[i][x]) + [Integer(maxarray[i-1][x-1]), Integer(maxarray[i-1][x])].max)
    x+=1 
  end
  i+=1
end

错误如下:

`<main>': undefined method `[]' for nil:NilClass (NoMethodError)

所以我想可能数组索引出错了所以我扩展了我的算法

maxarray = []
i = 0
m = array.count
while i < m do
  x = 0
  s = array[i].count
  while x < s do
    if i-1 < 0 
        item2 = 0
    elsif i-1 < 0 && x-1 < 0 
        item1 = 0
    else item1 = maxarray[i-1][x-1] 
         item2 = maxarray[i-1][x] 
    end
    maxarray[i][x] = (Integer(array[i][x]) + [Integer(item1), Integer(item2)].max)
    x+=1 
  end
  i+=1
end

但是现在我有一个不同的错误:

`Integer': can't convert nil into Integer (TypeError)

如何防止这个错误并运行脚本?

你为什么不把数组改成flatten来计算呢?

相关内容

  • 没有找到相关文章

最新更新