做二手房比较好的网站有哪些,网站seo排名优化,wordpress网站安装,网站安全怎么做一、题目描述
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] #xff0c;并返回其长度。如果不存在符合条件的子数组#xff0c;返回 0 。 二、题目解析
经…一、题目描述
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。 二、题目解析
经过观察示例我们发现一个规律就是比如示例12312私塾相加之和大于target这时如果再让右指针向右移动肯定是大于7并且长度一定不是最小的所以我们规避这样的情况去让左指针先判断是否已经大于7如果不大于那让右指针然后一直重复上述操作
这时发现做右指针都向同一个方向移动我们就称呼该算法就是“滑动窗口” 三、原码
class Solution {
public:int minSubArrayLen(int target, vectorint nums) {int len nums.size();int min 0;int left 0;int right 0;int sum nums[0];while(leftlen rightlen){if(sum target){right;//判断特殊越界的情况if(right len)break;sum nums[right];}else{if(min 0)min right-left1;else{if(right-left1 min)min right-left1;}sum - nums[left];left;}}return min;}
};