解题思路
题目:
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。
示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
首先想到暴力法,遍历所有的子数组,在子数组和大于等于s之中,选长度最短的。时间复杂度是O(n^2),很耗时。
然后是双指针,两个指针表示子数组的左右两个端点,右端点右移,直到数组和大于等于s,此时就是以左端点为起点的最小长度,然后左端点右移一位,再移动右指针比较。
数组相关题型,双指针就是表示子数组的区域。
代码实现
1、暴力法:
class Solution {
public int minSubArrayLen(int s, int[] nums) {
int len = nums.length;
if