/*
53. Maximum Subarray My Submissions QuestionEditorial Solution
Total Accepted: 108862 Total Submissions: 297759 Difficulty: Medium
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [−2,1,−3,4,−1,2,1,−5,4],
the contiguous subarray [4,−1,2,1] has the largest sum = 6.
click to show more practice.
Subscribe to see which companies asked this question
Show Tags
Show Similar Problems
*/
/*
解题思路:
如果在研究当前位置时,从前面累加的sum<0则一定要置sum=0
*/
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int maxval=nums[0];
int sum=0;
for(int i=0;i<nums.size();i++){
sum+=nums[i];
maxval=max(maxval,sum);
if(sum<0 ){
sum=0;
}
}
return maxval;
}
};