23 lines
483 B
Lua
23 lines
483 B
Lua
function array_sum(t)
|
|
assert(type(t) == "table", "t must be a table!")
|
|
local sum = 0
|
|
for i=1, #t do sum = sum + t[i] end
|
|
return sum
|
|
end
|
|
|
|
function equilibrium_index(t)
|
|
assert(type(t) == "table", "t must be a table!")
|
|
local left, right, ret = 0, array_sum(t), -1
|
|
for i,j in pairs(t) do
|
|
right = right - j
|
|
if left == right then
|
|
ret = i
|
|
break
|
|
end
|
|
left = left + j
|
|
end
|
|
return ret
|
|
end
|
|
|
|
print(equilibrium_index({-7, 1, 5, 2, -4, 3, 0}))
|