最大连续子序列和

简介: 最大连续子序列和

描述


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


思路


在任何讲动态规范的地方都能找到求最大连续子序列和的例子。具体来说,假设数组为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



相关文章
|
5月前
最长连续不重复子序列
最长连续不重复子序列
29 1
|
5月前
leetcode-581:最短无序连续子数组
leetcode-581:最短无序连续子数组
30 0
|
5月前
|
算法
leetcode-128:最长连续序列
leetcode-128:最长连续序列
39 0
|
5月前
leetcode-674:最长连续递增序列
leetcode-674:最长连续递增序列
38 0
|
12月前
|
存储 算法
算法:滑动窗口解决连续区间子数组问题
算法:滑动窗口解决连续区间子数组问题
|
存储 算法
LeetCode 128. 最长连续序列
LeetCode 128. 最长连续序列
109 0
LeetCode 128. 最长连续序列
leetcode 674 最长连续递增序列
leetcode 674 最长连续递增序列
80 0
leetcode 674 最长连续递增序列
|
测试技术
最长连续递增序列(LeetCode-674)
最长连续递增序列(LeetCode-674)
91 0
最长连续递增序列(LeetCode-674)
|
算法 Java
最长连续递增序列(LeetCode 674)
最长连续递增序列(LeetCode 674)
59 0