最大连续和算法的实现

    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: maxContSum.lua:8: attempt to compare number with nil stack
traceback:
        maxContSum.lua:8: in function 'maxContSum'
        maxContSum.lua:24: in main chunk
        [C]: ?

需要帮助 谢谢! 编辑: 我找到了我的问题。 Lua 数组索引从 1 开始 :)

点赞
用户1303277
用户1303277

在 Lua 中,数组的索引是从 1 开始而不是从 0 开始

local runningSum = array[0] 应该为 local runningSum = array[1] 同时 j = 1

for 循环应该从 1 到 n 开始

for i = 1, len, 1 do
2012-10-16 09:02:08