2012-10-16 91 views
1
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: 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個:)

+0

發現問題後,如果可以刪除該問題(否則標記爲否則刪除) –

+1

號碼Yo你應該在下面的「答案」中爲你的問題寫一個答案。 –

回答

2

陣列在LUA從1索引,而不是從0

local runningSum = array[0]local runningSum = array[1] 並且還j = 1

for循環應該從1開始到n開始

for i = 1, len, 1 do