此题为求子串和的最大值
思路一:
利用两个指针begin end,如果总和小于0,令begin=end,并令sum=end处的数值,遍历数组比较得出最大值。
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int len=nums.size();
if(len==0)
return 0;
int begin=0;
int end=1;
long long sum=nums[begin];
int max=nums[begin];
while(end<len){
if(sum<0)
{
begin=end;
sum=nums[end];
}
else
sum+=nums[end];
if(sum>max)
max=sum;
end++;
}
return max;
}
};