给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
示例:
输入:s = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
进阶:
如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。
解题思路:
双指针法。固定一个start, end指针。end指针负责右移扩展数组,start指针也是右移不过是精简数组。简言之就是如果nums[start:end]子数组之和大于或等于s,那么end指针不动,start指针右移;如果nums[start:end]子数组之和小于s,那么start指针不动,end指针右移。直至end遍历完了数组,结束遍历取出最小连续子数组的长度即可。