题目描述:
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
注意事项
子数组最少包含一个数字
样例
给出数组[1, -1, -2, 1],返回 -3
解题思路:
与最大子数组解题思路相同
代码:
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=nums.size();
int res=nums[0];
for(int i=0;i<s;i++)
{
int cn=nums[i];
if(cn<res)
res=cn;
for(int j=i+1;j<s;j++)
{
cn+=nums[j];
if(cn<=res)
res=cn;
}
}
return res;
}
};
开始先做的这个题目,没有标明数组要去连续的部分,所以怎么也错,找不到原因,所以题目理解很重要。