看到最大最小,连续,这几个关键词,就要考虑使用滑动窗口了,开始条件是,start和end都在数组的0号位置,一开始先移动end位置,当碰到start到end之间元素的和大于target的时候,就移动start,举个例子 target是7,nums是2,3,1,2,4,3,start=0,end=0,一开始end先移动,一直到他们之间的和大于target的时候,也就是end在第四个数字的时候,sum=2+3+1+2=8,8>target,现在移动start,end不动,那么sum=3+1+2=6,6 直到 start位置的值是4,end位置的值是3,sum=4+3=7=target,那么这个例子就有解,如果start到了nums.length的位置,那么说明之前所有的子数组都不等于target。 以下是一种解法: public static int minSubArrayLen(int target, int[] nums) {
int end=0;
int tmp=0;
int ans=Integer.MAX_VALUE;
for(int start=0;start



