mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
Create 53. Maximum Subarray.md
This commit is contained in:
parent
aceaed72c8
commit
38de2caff8
22
53. Maximum Subarray.md
Normal file
22
53. Maximum Subarray.md
Normal 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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user