diff --git a/solutions/53. Maximum Subarray.md b/solutions/53. Maximum Subarray.md index d67be57..aba787c 100644 --- a/solutions/53. Maximum Subarray.md +++ b/solutions/53. Maximum Subarray.md @@ -1,8 +1,11 @@ # [53. Maximum Subarray](https://leetcode.com/problems/maximum-subarray/description/) # 思路 -从前往后遍历一遍,用currsum记录以当前位置为结尾的最大子序列和。可见currsum要么等于nums[i]本身,要么等于nums[i]加上上一个currsum,即更新准则为: -如果currsum大于0,那么currsum += nums[i]; -否则currsum = nums[i] +就是一个简单的动态规划。从前往后遍历一遍,用currsum记录以当前位置为结尾的最大子序列和。可见currsum要么等于nums[i]本身,要么等于nums[i]加上上一个currsum,即更新准则为: +* 如果currsum大于0,那么`currsum += nums[i]`; +* 否则,则`currsum = nums[i]`。 + +时间复杂度O(n),空间复杂度O(1) + # C++ ``` C++ class Solution {