题目描述:

给定一个含有 ​​n​ 个正整数的数组和一个正整数 ​​target​ 。

找出该数组中满足其和 ​≥ target​ 的长度最小的 连续子数组 ​​[numsl, numsl+1, ..., numsr-1, numsr]​​ ,并返回其长度如果不存在符合条件的子数组,返回 ​​0​​ 。

分析:

方法一:暴力解决法(双层循环)

方法二:滑动窗口法

代码实现:

class Solution {
public int minSubArrayLen(int target, int[] nums) {
int left=0;
int sum=0;
int result=Integer.MAX_VALUE; //表示的是整型最大值
for(int right=0;right<nums.length;right++){
sum+=nums[right]; //右指针移动求和
while(sum>=target){
result=Math.min(result,right-left+1); //调用Math库中的比较大小的函数
sum-=nums[left++]; //左指针移动
}
}
return result==Integer.MAX_VALUE?0:result; //通过三目运算符来进行比较
}
}