void solve(int[] a, int value) {
int len = a.length;//数组长度
int i = 0, j = 0;//两个记录数组下标的变量
int sum = 0;//记录局部和的变量
int res = len + 1;//差值
while(true) {
while(j<len && sum<value) {
sum += a[j];
j++;
}
//跳出循环
if(sum < value) break;
//记录这个差值
res = Math.min(res, j-i);
//向右移动下标,尝试缩减差值
sum -= a[i];
i++;
}
if(res > len)
res = 0;//不存在
System.out.println(res);
}
理解了,不好表达,权当日后查看之用。