最长连续子序列和的所含元素 -- Kadane算法拓展

建议先回顾经典Kadane算法 -- 最长连续子序列和:
最大连续子序列和(动态规划 -- 经典Kadane算法)-CSDN博客

拓展代码:

python 复制代码
def max_subarray_sum(nums):
    global_max = current_max = nums[0]
    left = right = temp = 0

    for i in range(1, len(nums)):
        if nums[i] > current_max + nums[i]: # # 更换起始点
            current_max = nums[i]
            # temp = i # 也可以用temp作为保险记录,防止出错
            left = i
        else:
            current_max += nums[i]

        if current_max > global_max: # 如果当前连续子序列还可以边长,更新global_max,并且记录右边界left
            global_max = current_max
            # left ,right = temp, i # 记录每一满足的区间
            right = i

    return global_max, nums[left:right+1] # 取不到右边界,需要+1

nums = [-2,1,-3,4,-1,2,1,-5,4]

global_max, subarray = max_subarray_sum(nums)
print(global_max)  
print(subarray)

'''
6
[4, -1, 2, 1]

'''
相关推荐
我想吃余23 分钟前
【初探数据结构】快速排序的四种实现方式(Hoare,挖坑,前后指针,非递归)
开发语言·数据结构·算法·排序算法
钢板兽1 小时前
力扣hot100二刷——动态规划
java·算法·leetcode·动态规划
朱剑君1 小时前
分类——数学公式推导全过程
人工智能·算法·分类
编程在手天下我有1 小时前
K-均值聚类算法:数据海洋中的分类灯塔
算法·均值算法·聚类
程序猿chen2 小时前
云原生四重涅槃·破镜篇:混沌工程证道心,九阳真火锻金身
java·开发语言·git·后端·python·程序人生·云原生
爱的叹息4 小时前
Spring 及 Spring Boot 条件化注解(15个)完整列表及示例
spring boot·python·spring
生信碱移4 小时前
简单方法胜过大语言模型?!单细胞扰动敲除方法的实验
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·数据分析
无闻墨客4 小时前
数据可视化(matplotlib)-------图表样式美化
python·信息可视化·matplotlib
www_pp_4 小时前
使用Python和OpenCV进行指纹识别与验证
开发语言·python·opencv
啊我不会诶4 小时前
CF每日5题Day4(1400)
数据结构·算法