难度:简单
一、题目描述:
二、解题分析:
1、剑指解析
I、贪心算法
II、动态规划
2、代码实现
I、贪心算法
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
n = len(nums)
curr_sum = max_sum = nums[0]
for i in range(1, n):
curr_sum = max(nums[i], curr_sum + nums[i])
max_sum = max(max_sum, curr_sum)
return max_sum
II、动态规划
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
"""动态规划"""
n = len(nums)
max_sum = nums[0]
for i in range(1, n):
if nums[i-1] > 0:
nums[i] += nums[i-1]
max_sum = max(nums[i], max_sum) #在知道当前位置的最大和后更新全局最大和
return max_sum