Question: 
Write a function to find length of the subarray having maximum sum.


Model's Code:
def max_sub_array_sum(arr, n):
    max_sum = float('-inf')
    current_sum = 0
    max_length = 0
    current_length = 0

    for num in arr:
        current_sum += num
        current_length += 1
        
        if current_sum > max_sum:
            max_sum = current_sum
            max_length = current_length
        elif current_sum < 0:
            current_sum = 0
            current_length = 0

    return max_length if max_sum > float('-inf') else 0



Sample Correct Code:
from sys import maxsize 
def max_sub_array_sum(a,size): 
	max_so_far = -maxsize - 1
	max_ending_here = 0
	start = 0
	end = 0
	s = 0
	for i in range(0,size): 
		max_ending_here += a[i] 
		if max_so_far < max_ending_here: 
			max_so_far = max_ending_here 
			start = s 
			end = i 
		if max_ending_here < 0: 
			max_ending_here = 0
			s = i+1
	return (end - start + 1)


Asserts:
assert max_sub_array_sum([-2, -3, 4, -1, -2, 1, 5, -3],8) == 5
assert max_sub_array_sum([1, -2, 1, 1, -2, 1],6) == 2
assert max_sub_array_sum([-1, -2, 3, 4, 5],5) == 3


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 836 of 974: 642/836 (76.79425837320574%): success