美文网首页算法代码
长度最小的子数组

长度最小的子数组

作者: windUtterance | 来源:发表于2020-05-05 13:35 被阅读0次

    题目描述
    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。

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

    Java代码

    class Solution {
        public int minSubArrayLen(int s, int[] nums) {
            if(nums.length == 0) return 0;
            int ans = Integer.MAX_VALUE;
            int left = 0,right = 0,sum = 0;
    
            while(right < nums.length) {
                sum += nums[right];
                right++;
                while(sum >= s) {
                    ans = Math.min(ans, right - left);
                    sum -= nums[left];
                    left++;
                }
            }
    
            return ans == Integer.MAX_VALUE? 0 : ans;
        }
    }  
    

    相关文章

      网友评论

        本文标题:长度最小的子数组

        本文链接:https://www.haomeiwen.com/subject/nbrmghtx.html