力扣 209 长度最小的子数组
解法:滑动指针(对同向双指针区间内的数据处理)
1)先初始化 两个指针 left ,right。
2)右移指针right的同时使用sum记录指针right处的值,并判断sum的值是否满足要求,如果满足要求,利用循环来移动指针left,并记录每次满足要求的子数组最小长度。
3)当指针right走到数组尾端时结束。
4)返回最小长度。
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int left = 0 ,right = 0 , sum = 0,len = INT_MAX;while(right < nums.size()){sum += nums[right];while(sum >= target){len = min(len,right - left +1);sum -= nums[left++];}++right;}return len == INT_MAX ? 0 : len; //如果len=INT_MAX,说明整个数组所有元素之和都小于target.}
};