最大连续子序列和

简介: 最大连续子序列和

描述


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


思路


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



相关文章
|
8月前
|
机器学习/深度学习 算法 测试技术
【动态规划】【最长子序列】2901. 最长相邻不相等子序列 II
【动态规划】【最长子序列】2901. 最长相邻不相等子序列 II
|
8月前
|
算法 C++
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
|
3月前
|
算法
674.最长连续递增序列、5. 最长回文子串(2021-11-05)
674.最长连续递增序列、5. 最长回文子串(2021-11-05)
23 0
|
8月前
最长连续不重复子序列
最长连续不重复子序列
42 1
|
8月前
leetcode-581:最短无序连续子数组
leetcode-581:最短无序连续子数组
36 0
Acwing 3692. 最长连续公共子序列
Acwing 3692. 最长连续公共子序列
68 0
|
算法 前端开发
算法简单题,吾辈重拳出击 - 连续子数组的最大和
对算法感到畏惧的 xdm,咱不求一口吃个胖子,先对算法简单题重拳出击,尝试建立自信,训练基础算法思维,不日定能大杀四方、所向披靡。
(区间dp最长上升子序列,最长下降子序列)
(区间dp最长上升子序列,最长下降子序列)
122 0
|
算法
【12. 最大连续不重复子序列】
. 最大连续不重复子序列
124 0
【12. 最大连续不重复子序列】

热门文章

最新文章

下一篇
开通oss服务