美文网首页
最大连续子序列和

最大连续子序列和

作者: 致Great | 来源:发表于2018-08-24 10:19 被阅读21次

    描述

    给定一个数组,求出最大的连续子序列和

    思路

    在任何讲动态规范的地方都能找到求最大连续子序列和的例子。具体来说,假设数组为a[i],因为最大连续的子序列和必须是在位置0-(n-1)之间的某个位置结束。那么,当循环遍历到第i个位置时,如果其前面的连续子序列和小于等于0,那么以位置i结尾的最大连续子序列和就是第i个位置的值即a[i]。如果其前面的连续子序列和大于0,则以位置i结尾的最大连续子序列和为b[i] = max{ b[i-1]+a[i],a[i]},其中b[i]就是指最大连续子序列的和。

    代码

    def maxSum(list_of_nums):
        maxsum = 0
        maxtmp = 0
        for i in range(len(list_of_nums)):
            if maxtmp <= 0:
                maxtmp = list_of_nums[i]
            else:
                maxtmp += list_of_nums[i]
    
            if(maxtmp > maxsum):
                maxsum = maxtmp
    
        return maxsum
    
    if __name__ == '__main__':
        list_of_num = [1,3,-3,4,-6]
        maxsum = maxSum(list_of_num)
        print "maxsum is: ",maxsum
    

    来源

    https://blog.csdn.net/bitcarmanlee/article/details/51526010

    相关文章

      网友评论

          本文标题:最大连续子序列和

          本文链接:https://www.haomeiwen.com/subject/dmqbiftx.html