阅读 205

LeetCode209. 长度最小的子数组

LeetCode209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 :

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

复制代码

class Solution {    public int minSubArrayLen(int target, int[] nums) {        
        int sum=0,left=0,right=0;        int len=nums.length+1;//如果没有符合条件的,len不变,则最后将len置为0
        while (right<nums.length){
            sum += nums[right];            while(sum>=target){ //left一直移动到不符合条件
                len = Math.min(len,right-left+1);
                sum -= nums[left];
                left++;
            }
            right++;
        }        return len==nums.length+1?0:len;
    }
}

复制代码


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐