滑动窗口

31 阅读1分钟

leetcode.cn/problems/mi…

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        System.out.println(minSubArrayLen(7,new int[]{2,3,1,2,4,3}));
    }
    public static int minSubArrayLen(int target, int[] nums) {
        int sum=0;
        int result= Integer.MAX_VALUE;
        int start=0;
        for (int end = 0; end < nums.length; end++) {
            sum+=nums[end];
            while(sum>=target){
                result =(end-start+1)<result?(end-start+1):result;
                sum-=nums[start];
                start++;

            }
        }
        if(result==Integer.MAX_VALUE){
            return 0;
        }else{
            return result;
        }
    }
}