zoukankan      html  css  js  c++  java
  • 209. Minimum Size Subarray Sum

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

    Example: 

    Input: s = 7, nums = [2,3,1,2,4,3]
    Output: 2
    Explanation: the subarray [4,3] has the minimal length under the problem constraint.
    Follow up:
    If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n). 
     
     
    class Solution {
    public:
        int minSubArrayLen(int s, vector<int>& nums) {
            int sum=0,i=0,j=0,res=nums.size()+1;
            while(j<nums.size())
            {
                sum+=nums[j++];
                while(sum>=s)
                {
                    sum-=nums[i++];
                    res=min(res,j-i+1);
                }
            }
            return res>nums.size()?0:res;
        }
    };

    经典的双指针问题.开始用的是单层for循环, 调试了很久条件总是写的不对,实在不行看了答案, 发现用的是双层循环, 确实这个很简洁, 也是非常直接的逻辑

  • 相关阅读:
    3.16 使用Zookeeper对HDFS HA配置自动故障转移及测试
    4、html的body内标签之input系列
    Gym
    Gym
    Gym
    Gym
    Gym
    Big Event in HDU HDU1171 (多重背包)
    Coins POJ 1742 多重背包部分和
    HDU 1059 Dividing 多重背包
  • 原文地址:https://www.cnblogs.com/lychnis/p/11837216.html
Copyright © 2011-2022 走看看