Largest sum continuos subarray

Given a zero index array find the sum of contiguos subarray which has the largest sum.

Time-complexity: O(n)
Auxiliary space: O(1)

Implementation

This algorithm doesn’t work for negative numbers,it simply returns zero if all numbers are negative.

def max_continuos_sum(a)
   max_ending_sum = max_slice_sum =0 
   n=a.length
   for i in 0...n
    max_ending_sum = [0,(max_ending_sum+a[i])].max
    max_slice_sum = [max_slice_sum,max_ending_sum].max
   end
    return  max_slice_sum
end

max_continuos_sum([1,1,-1,2,3,4,-9,3,4,5,-6]) # => 13

Algorithm to handle negative numbers as well

def max_continuos_sum(a)
   max_ending_sum = max_slice_sum =a[0]
   n=a.length
   for i in 0...n
    max_ending_sum = [a[i],(max_ending_sum+a[i])].max
    max_slice_sum = [max_slice_sum,max_ending_sum].max
   end
    return  max_slice_sum
end

max_continuos_sum([-5,-4,-10,-2,-3,-2,-1,-9]) #=> -1

Updated: