Algorithm 最大连续和算法的实现
这是我的密码。 但我得到了这个错误信息:Algorithm 最大连续和算法的实现,algorithm,lua,Algorithm,Lua,这是我的密码。 但我得到了这个错误信息: function maxContSum(array) local len = #array local maxSum = 0 local runningSum = array[0] local j = 0 local start, finish = 0,0 for i=0, len-1,1 do if runningSum > 0 then runningSum
function maxContSum(array)
local len = #array
local maxSum = 0
local runningSum = array[0]
local j = 0
local start, finish = 0,0
for i=0, len-1,1 do
if runningSum > 0 then
runningSum =runningSum + array[i]
else
runningSum = array[i]
j = i
end
if runningSum > maxSum then
maxSum = runningSum
start = j
finish = i
end
print ("maxsum is ", maxSum)
end
end
a = {-2, 2,3,4,5,-7,8,0,-1,1,2,3,4}
maxContSum(a)
需要帮助吗
谢谢大家!
编辑:
我发现了我的问题。
Lua数组索引从1开始:)Lua中的数组是从1而不是从0索引的
local runningSum=array[0]
应该是local runningSum=array[1]
还有j=1
而的循环应该从1到n开始
lua: maxContSum.lua:8: attempt to compare number with nil stack
traceback:
maxContSum.lua:8: in function 'maxContSum'
maxContSum.lua:24: in main chunk
[C]: ?
发现问题后,如果可以的话,您也可以删除该问题(或者标记为删除)。否。您应该在下面的“答案”中为您的问题写一个答案。
for i = 1, len, 1 do