[LeetCode]53. Maximum Subarray
53. Maximum Subarray
动态规划
class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return 0
        dp = [0] * len(nums)
        max_sum = dp[0] = nums[0]
        for i in range(1, len(nums)):
            dp[i] = nums[i] if dp[i-1] + nums[i] < 0 else max(dp[i-1] + nums[i], nums[i])
            if max_sum < dp[i]:
                max_sum = dp[i]
        return max_sum
class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return 0
        max_sum = cur_sum = nums[0]
        for i in range(1, len(nums)):
            cur_sum = max(cur_sum + nums[i], nums[i])
            max_sum = max(cur_sum, max_sum)
        return max_sum 
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号