menu

算法-数组-滑动窗口-最小连续子数组

  • date_range 23/07/2019 00:00
    点击量:
    info
    sort
    面试
    label
    java

https://leetcode.com/problems/minimum-size-subarray-sum/

给定一个整形数组和一个数字s,找到数组中最短的一个连续子数组,使得连续子数组的数字和sum>=s,返回这个最短的连续子数组的长度值

class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        int i = 0, j = -1, sum = 0, minLength = Integer.MAX_VALUE;
        while(i < nums.length){
            if(j + 1 < nums.length && sum < s){
                sum+=nums[++j];
            }else{
                sum-=nums[i++];
            }
            if(sum >= s){
                minLength = Math.min(j-i+1, minLength);
            }
        }
        if(minLength == Integer.MAX_VALUE){
            return 0;
        }
        return minLength;
    }
}

评论:


技术文章推送

手机、电脑实用软件分享

微信搜索公众号: AndrewYG的算法世界
wechat 微信公众号:AndrewYG的算法世界