题解 | #连续子数组的最大和(二)#

连续子数组的最大和(二)

https://www.nowcoder.com/practice/11662ff51a714bbd8de809a89c481e21

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def FindGreatestSumOfSubArray(self , array: List[int]) -> List[int]:
        # 需要记录最长空间
        if not array:
            return []
        left = 0
        right = 0
        max_left = 0
        max_right = 0
        max = 0
        result = array[0]
        for i in range(len(array)):
            max += array[i]
            right = i + 1
            # 只需要记录最大的index就可以 等于时计算为0的情况 因为需要数组长度最大
            if max >= result:
                result = max
                max_left = left
                max_right = right
            if max < 0:
                max = 0
                left = i + 1
        return array[max_left:max_right]

全部评论

相关推荐

一条从:又想干活还想拿工资,什么好事都让你占了
点赞 评论 收藏
分享
烤点老白薯:这种东西到时候公众号搜索都有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务