重庆网站排名优化公司,深圳市住建局招标中心,优化大师使用方法,在哪个网站可以做试卷1. 题目链接#xff1a;209. 长度最小的子数组
2. 题目描述#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] #xff0c;并返回其长度**。**如果不…1. 题目链接209. 长度最小的子数组
2. 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] 并返回其长度**。**如果不存在符合条件的子数组返回 0 。 示例 1 输入target 7, nums [2,3,1,2,4,3]
输出2
解释子数组 [4,3] 是该条件下的长度最小的子数组。示例 2 输入target 4, nums [1,4,4]
输出1示例 3 输入target 11, nums [1,1,1,1,1,1,1,1]
输出0提示 1 target 1091 nums.length 1051 nums[i] 105 3.解法滑动窗口
3.1算法思路
由于此问题分析的对象是「⼀段连续的区间」因此可以考虑「滑动窗⼝」的思想来解决这道题。 让滑动窗⼝满⾜从 i 位置开始窗⼝内所有元素的和⼩于 target 那么当窗⼝内元素之和第⼀次⼤于等于⽬标值的时候就是 i 位置开始满⾜条件的最⼩⻓度。 做法将右端元素划⼊窗⼝中统计出此时窗⼝内元素的和 1.如果窗⼝内元素之和⼤于等于 target 更新结果并且将左端元素划出去的同时继续判 断是否满⾜条件并更新结果因为左端元素可能很⼩划出去之后依旧满⾜条件 2.如果窗⼝内元素之和不满⾜条件 right 另下⼀个元素进⼊窗⼝。
3.2C算法代码
class Solution {
public:int minSubArrayLen(int target, vectorint nums) {int nnums.size();int left0;int right0;int lenINT_MAX;int sum0;for(left0,right0;rightn;right){sumnums[right];//进窗口while(sumtarget)//判断{lenmin(len,right-left1);//更新结果sum-nums[left];//出窗口}}return lenINT_MAX?0:len;}
};