public static void main(String[] args) {
int target=5 ;
int[] nums ={1,1,1,1,1,3,2};
int l =0,r=0;
int length = Integer.MAX_VALUE;
//flag记录length是否改变,如果没有修改length的值,
//说明根本就没有满足target的元素,所以长度应该为0
boolean flag =false;
int sum = 0;
//滑动窗口计算最小长度
while (l<=r && r<nums.length){
sum+=nums[r];
r++;//一定要先让r++再l++
while (sum>=target){
length = Math.min(length,r-l);
flag = true;
sum -= nums[l];
l++;
}
}
if(!flag){
System.out.println(0);
}else{
System.out.println(length);
}
}