LeetCode——长度最小的子数组

public int minSubArrayLen(int s, int[] nums) {
        if( 0 == nums.length  || null == nums)
        {
            return 0;
        }
        int  l = 0 ;
        int r = 0;
        int result =  Integer.MAX_VALUE;
        int cur = nums[0];
        while(l < nums.length)
        {
            if(cur < s &&  r < nums.length -1)
            {
                r++;
                cur += nums[r];
            }
            else 
            {
                if(cur >= s ){
                    result = Math.min(result , r - l + 1);                   
                }
                cur -= nums[l];
                l++;

            }
        }
        return result == Integer.MAX_VALUE ? 0 : result;

    }

维护一个滑动窗口。

posted @ 2020-07-08 16:56  贼心~不死  阅读(122)  评论(0编辑  收藏  举报