问题描述
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
样例
给出数组[1, -1, -2, 1],返回 -3
求解
class Solution {
public:
int minSubArray(vector<int> &nums) {
int minSum = 0;
int curSum = 0;
for (auto it = nums.begin(); it != nums.end(); ++it)
{
if (it == nums.begin())
{
minSum = *it;
}
curSum += *it;
if (curSum < minSum)
{
minSum = curSum;
}
if (curSum > 0)
{
curSum = 0;
}
}
return minSum;
}
};