描述:
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
注意事项:子数组最少包含一个数字。
样例:
给出数组[1, -1, -2, 1],返回 -3。
标签:贪心 数组
思路:
累加和tem,最小值sum
如果tem>0且tem<被加数值,tem抛弃原来的值,还原为被加数值,继续加;
如果tem<0,继续加;
与sum比较, 返回最小值。
class Solution {
public:
int minSubArray (vector<int> &nums) {
int sum=nums[0];
int tem=nums[0];
for(int i=1;i<nums.size();i++){
if(tem>=0){
if(nums[i]<tem){
tem=nums[i];
}
}
else {
tem+=nums[i];
}
if(tem<sum){
sum=tem;
}
}
return sum;
}
};