zoukankan      html  css  js  c++  java
  • 【数组】Minimum Size Subarray Sum

    题目:

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.

    For example, given the array [2,3,1,2,4,3] and s = 7,
    the subarray [4,3] has the minimal length under the problem constraint.

    click to show more practice.

    More practice:

    If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n).

    思路:

    两个指针, start end, end向后走,直到 sum 大于 s. 然后start向后, 直到sum 小于s. 同时更新 min值。

    /**
     * @param {number} s
     * @param {number[]} nums
     * @return {number}
     */
    var minSubArrayLen = function(s, nums) {
        var l=0,r=0,min=2147483647,sum=0;
        while(r<nums.length&&l<=r){
            while(r<nums.length&&sum<s){
                sum+=nums[r++];
            }
            while(l<=r&&sum>=s){
                min=Math.min(min,r-l);
                sum-=nums[l++];
                
            }
        }
        
        return min==2147483647?0:min;
    };
  • 相关阅读:
    POJ 2388(排序)
    优先队列(堆实现)
    POJ 3322(广搜)
    POJ 1190(深搜)
    POJ 1456(贪心)
    poj 2524 (并查集)
    poj 1611(并查集)
    poj 1521
    poj 1220(短除法)
    css 如何实现图片等比例缩放
  • 原文地址:https://www.cnblogs.com/shytong/p/5115059.html
Copyright © 2011-2022 走看看