leetCode 53 最大子序和-------python

'''
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
进阶:

如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
'''


def maxSubArrar(nums):
    n = len(nums)
    sum = 0
    ans = float('-inf')		#设为负无穷
    for i in range(n):
        sum += nums[i]
        ans = max(sum,ans)
        if sum < 0:		#舍掉其中以某一负数开头的子序列。
            sum = 0
    return ans



if __name__ == '__main__':
    nums = [-2,1,-3,4,-1,2,1,-5,4]
    b = maxSubArrar(nums)
    print(b)

猜你喜欢

转载自blog.csdn.net/weixin_40924580/article/details/83118778
今日推荐