LeetCode/solutions/53. Maximum Subarray.md
2019-09-13 23:08:41 +08:00

23 lines
778 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [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]
# C++
``` C++
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int maxsum = nums[0]; // at least one number
int currsum = nums[0];
for(int i = 1; i < nums.size(); i++){
if(currsum > 0) currsum += nums[i];
else currsum = nums[i];
if(currsum > maxsum) maxsum = currsum;
}
return maxsum;
}
};
```