Tuesday, February 25, 2014

You are given an array of integers (both positive and negative). Find the continuous sequence with the largest sum. Return the sum.

__author__ = 'nitin'

def get_max_sum(a):
    max_sum=0
    sum_int=0
    i=0
    iter_a=len(a)
    result_list=[]
    while iter_a!=0:
        sum_int=sum_int+ a[i]
        if max_sum < sum_int:
            result_list.append(a[i])
        if max_sum>sum_int and sum_int >0:
            result_list.append(a[i])
        elif sum_int<0 and="" iter_a="">1:
            sum_int=0
            sum_int, result_list=negative_check(iter_a,i,sum_int,a,result_list)
        i=i+1
        iter_a=iter_a -1
    return max_sum, result_list

def negative_check(sec_iter_a,j,sum_int,a,result_list):
    while sec_iter_a>1:
        sum_int=sum_int + a[j+1]
        if sum_int>0:
            result_list=[]
            break
        j=j+1
        sec_iter_a=sec_iter_a -1
    sum_int=0
    return sum_int, result_list

if __name__=="__main__":
    a_list=[-2,-3,-4,3,4]
    result,result_list=get_max_sum(a_list)
    print "Result :",result, "and Result List :",result_list

No comments:

My Profile

My photo
can be reached at 09916017317