import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型ArrayList
* @param k int整型
* @return int整型
*/
public int shortestSubarray (ArrayList<Integer> nums, int k) {
// write code here
int left=0,right=0;//左右指针
int minLength = Integer.MAX_VALUE;//记录大于等于k的数组的最小长度
int sum=0;//记录当前子数组元素之和
for(right=0;right<nums.size();right++){//右指针从0最终移动到数组尾部
sum+=nums.get(right);
while(left<=right && sum>=k){//子数组之和大于等于k,左指针就可以右移
minLength = Math.min(minLength,right-left+1);
sum-=nums.get(left++);
}
}
return minLength==Integer.MAX_VALUE?-1:minLength;//-1表示没有满足条件的子数组
}
}