我有一个像这样的数组
[["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
来计算呢?