最长连续子序列和的所含元素 -- 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]

'''
相关推荐
测试开发Kevin15 小时前
小tip:换行符CRLF 和 LF 的区别以及二者在实际项目中的影响
java·开发语言·python
爱学习的阿磊15 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
阿狸OKay15 小时前
einops 库和 PyTorch 的 einsum 的语法
人工智能·pytorch·python
编码者卢布16 小时前
【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
后端·python·flask
可触的未来,发芽的智生16 小时前
狂想:为AGI代称造字ta,《第三类智慧存在,神的赐名》
javascript·人工智能·python·神经网络·程序人生
吴维炜17 小时前
「Python算法」计费引擎系统SKILL.md
python·算法·agent·skill.md·vb coding
FansyMeng17 小时前
VSCode配置anaconda
vscode·python
电饭叔17 小时前
Tkinter Button 括号内的核心参数详解
python·学习
Σίσυφος190017 小时前
PCL Point-to-Point ICP详解
人工智能·算法
you-_ling18 小时前
数据结构:4.二叉树
数据结构