zoukankan      html  css  js  c++  java
  • leetcode 209. 长度最小的子数组

    题目

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

    示例:

    输入:s = 7, nums = [2,3,1,2,4,3]

    输出:2

    解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。

    思路

    滑动窗口模板题,不想解释

    代码

    class Solution {
    public:
        int minSubArrayLen(int s, vector<int>& nums) {
            int sum = 0;
            int ans = 0x3f3f3f;
            int l=0;
            for(int r=0;r<nums.size();r++)
            {
                sum += nums[r];
                while(sum>=s)
                {
                    ans = min(ans,r-l+1);
                    sum -= nums[l];
                    l++;
                }
            }
            if(ans==0x3f3f3f)
                return 0;
            else return ans;
        }
    };
  • 相关阅读:
    数组指针和指针数组的区别
    C++虚函数
    C++容器
    红黑树
    COM RTS/CTS, DTR/DSR
    linux和windows多线程的异同
    socket
    C++vector使用
    select函数详解
    linux下头文件
  • 原文地址:https://www.cnblogs.com/simplekinght/p/13205568.html
Copyright © 2011-2022 走看看