最大子序和。给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
1 |
|
进阶:
如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
思路一
动态规划,dp[i]
表示[0:i]
中最大子序和,并且必须包含 nums[i]
。则当 dp[i-1] > 0
时, dp[i] = dp[i-1] + nums[i]
,否则 dp[i] = nums[i]
,然后 dp
中的最大值。时间复杂度 $O(n)$。
1 |
|