[LeetCode&Python] Problem 53. Maximum Subarray

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.

Follow up:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        maxsum=nums[0]
        n=len(nums)
        for i in range(1,n):
            nums[i]=max(nums[i],nums[i]+nums[i-1])
            maxsum=max(maxsum,nums[i])
        return maxsum    

  

猜你喜欢

转载自www.cnblogs.com/chiyeung/p/10191952.html