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

长度最小的子数组

长度最小的子数组 给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回0。...实例 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。...然后继续循环,当sum 的时候尾指针不断右移,因为窗口间的值一直小于给定的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

    数组——209.长度最小的子数组

    1 题目描述 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。...找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。...2 题目示例 示例 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.7K70

    长度最小的子数组

    找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 numsl, numsl+1, ..., 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 进阶: 如果你已经实现...O(n) 时间复杂度的解法,请尝试设计一个 O(n log(n)) 时间复杂度的解法。...解题思路 这道题是要找长度最小的连续子数组,可以使用滑动窗口,核心思路就是维护滑动窗口的两个数值,start 和 end: 如果 sumstart, end<target,就 end++,此时 start

    57530

    【优选算法】9----长度最小的子数组

    讲解算法原理: 方法一:暴力解法:简单粗暴的大搜索 这题的解题思路就像是找宝藏,一开始咱两眼一抹黑,不知道宝藏在哪,那就得从最开始的地方一 点点摸索。...暴力解法很直接,就是把所有可能的子数组都找出来,计算它们的和,看看哪个子数组的和大于等 于 target ,然后找出其中长度最小的。...这就好比把整个森林里的每一个角落都翻个遍,肯定能找 到宝藏,但就是有点费时间和精力。 方法二:聪明的寻宝法 这里的 left 和 right 就是滑动窗口的左右边界。...每缩小一次,就更新一下最小长度。这样不断地滑动窗口,就能找到满足条件的最 小子数组长度啦。...0:len; } }; ​ ​ 这道长度最小的子数组题目,通过暴力解法和滑动窗口两种思路的对比,让我们看到了算法优化的 魅力。暴力解法虽然简单易懂,但在效率上输给了滑动窗口。

    6610

    长度最小的子数组

    长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。...找出该数组中满足其总和大于等于 target 的长度最小的 连续 子数组 [numsl, numsl+1, ..., 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 <=...但是如 果继续像⽅法⼀⼀样,重新开始统计第⼆个元素( left2 )往后的和,势必会有⼤量重复 的计算(因为我们在求第⼀段区间的时候,已经算出很多元素的和了,这些和是可以在计算 下次区间和的时候⽤

    9610

    长度最小的子数组

    找出该数组中满足其和 ≥ 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,则缩小窗口的左侧部分; 随着遍历结束,我们返回满足上述条件中最小长度即可;在解题过程中,我们可以采用双指针的方式来模拟滑动窗口。...那么以上就是本题的解题思路了,为了便于大家理解,我们一下以输入 target = 7, nums = [2,3,1,2,4,3]为例,看一下具体的操作流程是怎么样的。

    19510

    长度最小的子数组

    长度最小的子数组 题目描述 给定一个含有 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)。

    24310

    长度最小的子数组

    找出该数组中满足其和 ≥ 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,则缩小窗口的左侧部分; 随着遍历结束,我们返回满足上述条件中最小长度即可;在解题过程中,我们可以采用双指针的方式来模拟滑动窗口。...那么以上就是本题的解题思路了,为了便于大家理解,我们一下以输入 target = 7, nums = [2,3,1,2,4,3]为例,看一下具体的操作流程是怎么样的。

    32610
    领券