题目
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
分析
如果当前和小于0,则子序列从下一个数开始。
代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if(nums.size()==0)
return 0;
int max_sum=INT_MIN;
int curr_sum=0;
for(int i=0;i<nums.size();++i){
if(curr_sum<0)
curr_sum=nums[i];
else
curr_sum+=nums[i];
if(curr_sum>max_sum)
max_sum=curr_sum;
}
return max_sum;
}
};