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

'''
相关推荐
<<4 分钟前
基于Django的权限管理平台
后端·python·django
啊我不会诶5 分钟前
CF每日4题
算法
uhakadotcom21 分钟前
人工智能如何改变医疗行业:简单易懂的基础介绍与实用案例
算法·面试·github
QMT量化交易27 分钟前
如何解决PyQt从主窗口打开新窗口时出现闪退的问题
python·pyqt
databook35 分钟前
『Plotly实战指南』--样式定制高级篇
python·数据分析·数据可视化
山北雨夜漫步2 小时前
机器学习 Day14 XGboost(极端梯度提升树)算法
人工智能·算法·机器学习
basketball6162 小时前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
到底怎么取名字不会重复2 小时前
Day10——LeetCode15&560
c++·算法·leetcode·哈希算法·散列表
兔子蟹子2 小时前
Java集合框架解析
java·windows·python
宁酱醇2 小时前
各种各样的bug合集
开发语言·笔记·python·gitlab·bug