题目链接:点击打开链接
本题是求最小子数组,并返回最小和。刚开始不理解子数组的定义,后来知道了子数组必须是连续的,然后用贪心的算法解决。
class Solution {
public:
/*
* @param nums: a list of integers
* @return: A integer indicate the sum of minimum subarray
*/
int minSubArray(vector<int> &nums) {
// write your code here
int s=0;//临时的和
int m=nums[0];//所求的和
int n=nums.size();
for(int i=0;i<n;i++)
{
s+=nums[i]; //相加
if(m>s) {m=s;} //判断是否比前面的小,是:赋值
if(s>0) {s=0;} //如果加起来是个正数,那么S归零,重新计算
}
return m;
}
};