Create 53. Maximum Subarray.md

This commit is contained in:
唐树森 2018-09-01 19:45:24 +08:00 committed by GitHub
parent aceaed72c8
commit 38de2caff8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

22
53. Maximum Subarray.md Normal file
View File

@ -0,0 +1,22 @@
# [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++
```
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;
}
};
```