首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

长度最小子数组

长度最小子数组 给定一个含有n个正整数数组和一个正整数s ,找出该数组中满足其和 ≥ s长度最小连续子数组,并返回其长度。如果不存在符合条件连续子数组,返回0。...实例 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下长度最小连续子数组。...然后继续循环,当sum < s时候尾指针不断右移,因为窗口间值一直小于给定s,只有尾指针右移扩大窗口才有可能使窗口间和大于等于s,当窗口间值和大于s时,那么就使首指针右移用以减小窗口数量...,只有不断减少窗口数量才能获得长度最小连续子数组,当尾指针达到边界条件即尾指针超过了nums数组长度,那么尾指针不再右移,此时将首指针不断右移,直到首指针长度与nums数组长度相等,结束循环,...在最后判断target是否仍然等于无穷大,如果仍然是等于无穷大则认为没有找到合适子数组长度并返回0,否则就返回target。

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

leetcode-209-长度最小子数组

题目描述: 给定一个含有 n 个正整数数组和一个正整数 s ,找出该数组中满足其和 ≥ s 长度最小连续子数组。如果不存在符合条件连续子数组,返回 0。...示例:  输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下长度最小连续子数组。...要完成函数: int minSubArrayLen(int s, vector& nums)  说明: 1、这道题给定一个正整数s,和一个包含正整数vector,要求在vector中找到最短长度连续子数组...,这个子数组中所有数和>=s,返回子数组长度。...2、这道题不会很难,我们用滑窗方法找到和>=s子数组,接着不断更新最短长度,最终返回这个最短长度即可。

1.4K30

长度最小子数组

找出该数组中满足其和 ≥ target 长度最小 连续子数组 numsl, numsl+1, ..., numsr-1, numsr ,并返回其长度。如果不存在符合条件子数组,返回 0 。...示例 1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下长度最小子数组。...,请尝试设计一个 O(n log(n)) 时间复杂度解法。...解题思路 这道题是要找长度最小连续子数组,可以使用滑动窗口,核心思路就是维护滑动窗口两个数值,start 和 end: 如果 sumstart, end<target,就 end++,此时 start...,end-1] 是可能结果 如果 sumstart, end>=target,就 start++,直到 sumstart, end<target,此时 start-1,end 是可能结果(因为 start

56430

长度最小子数组

长度最小子数组 给定一个含有 n 个正整数数组和一个正整数 target 。...找出该数组中满足其总和大于等于 target 长度最小 连续 子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。...如果不存在符合条件子数组,返回 0 。 示例 1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下长度最小子数组。...然后从这个「起始位置」开始,然 后寻找⼀段最短区间,使得这段区间和「⼤于等于」⽬标值。 将所有元素作为起始位置所得结果中,找到「最⼩值」即可。...但是如 果继续像⽅法⼀⼀样,重新开始统计第⼆个元素( left2 )往后和,势必会有⼤量重复 计算(因为我们在求第⼀段区间时候,已经算出很多元素和了,这些和是可以在计算 下次区间和时候⽤

8810

长度最小子数组

找出该数组中满足其和 ≥ target 长度最小 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件子数组,返回 0 。...二、示例 2.1> 示例 1: 【输入】target = 7, nums = [2,3,1,2,4,3] 【输出】2 【解释】子数组 [4,3] 是该条件下长度最小子数组。...<= target <= 10^9 1 <= nums.length <= 10^5 1 <= nums[i] <= 10^5 三、解题思路 根据题目描述我们要找出该数组中满足其和大于等于target长度最小连续子数组...【规则2】如果连续子数组其和 小于 target,则缩小窗口左侧部分; 随着遍历结束,我们返回满足上述条件中最小长度即可;在解题过程中,我们可以采用双指针方式来模拟滑动窗口。...0 : result; } } 今天文章内容就这些了: 写作不易,笔者几个小时甚至数天完成一篇文章,只愿换来您几秒钟 点赞 & 分享 。

15910

长度最小子数组

找出该数组中满足其和 ≥ target 长度最小 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件子数组,返回 0 。...二、示例 2.1> 示例 1: 【输入】target = 7, nums = [2,3,1,2,4,3] 【输出】2 【解释】子数组 [4,3] 是该条件下长度最小子数组。...<= target <= 10^9 1 <= nums.length <= 10^5 1 <= nums[i] <= 10^5 三、解题思路 根据题目描述我们要找出该数组中满足其和大于等于target长度最小连续子数组...; 【规则2】如果连续子数组其和 小于 target,则缩小窗口左侧部分; 随着遍历结束,我们返回满足上述条件中最小长度即可;在解题过程中,我们可以采用双指针方式来模拟滑动窗口。...0 : result;     } } 图片 今天文章内容就这些了: 写作不易,笔者几个小时甚至数天完成一篇文章,只愿换来您几秒钟 点赞 & 分享 。

22710

长度最小子数组

长度最小子数组 题目描述 给定一个含有 n 个正整数数组和一个正整数 target 。...找出该数组中满足其和 ≥ target 长度最小 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件子数组,返回 0 。...示例 1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下长度最小子数组。...初始化子数组最小长度为无穷大,枚举数组 nums nums 中每个下标作为子数组开始下标,对于每个开始下标 i,需要找到大于或等于 i 最小下标 j,使得从nums[i] 到 nums[j]...元素和大于或等于 s,并更新子数组最小长度(此时子数组长度是j−i+1)。

22410

LeetCode刷题DAY 33:长度最小子数组

难度:中等 关键词:前缀和+二分查找、双指针 ⭐️⭐️⭐️⭐️⭐️ 1 题目描述 给定一个含有 n 个正整数数组和一个正整数 s ,找出该数组中满足其和 ≥ s 长度最小连续子数组,并返回其长度...ans = min(ans,(i-bound+1)) return 0 if ans == len(nums) + 1 else ans 思路二:双指针 看官网解题时候总能发现让惊讶方法...,也深感自己差距!...两个指针从0开始,end指针不断往后,直至start和end间元素和>=s,此时更新长度,然后把start右移,更新长度,直至sum<s,重复end右移过程。...相当于一个变动窗口,根据不同规则变化窗口两端,两个指针均最多移动n次(n为nums长度),且不需要额外数组存储空间。

47810
领券