我们先来看题目描述:
给定一个含有 n 个正整数的数组和一个正整数 s , 找出该数组中满足其和**≥ s** 的长度最小的连续子数组**。**如果不存在符合条件的连续子数组,返回 0。

示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
进阶:
如果你已经完成了O (n ) 时间复杂度的解法, 请尝试 O (n logn) 时间复杂度的解法。
解决方案
方法 1:暴力
想法

C++ 实现
int minSubArrayLen(int s, vector<int>& nums)
{
int n = nums.size();
int ans = INT_MAX;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
int sum = 0;
for (int k = i; k <= j; k++) {
sum += nums[k];
}
if (sum >= s) {
ans = min(ans, (j - i + 1));
break; //Found the smallest subarray with sum>=s starting with index i, hence move to next index
}
}
}
return (ans != INT_MAX) ? ans : 0;
}