数组——长度最小的子数组

news/2024/5/20 6:44:49 标签: 算法, 数据结构, c++, leetcode, 滑动窗口

文章目录

    • 一、题目
    • 二、题解

题目顺序:代码随想录算法公开课,b站上有相应视频讲解

一、题目

209. Minimum Size Subarray Sum

Given an array of positive integers nums and a positive integer target, return the minimal length of a
subarray
whose sum is greater than or equal to target. If there is no such subarray, return 0 instead.

Example 1:

Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: The subarray [4,3] has the minimal length under the problem constraint.
Example 2:

Input: target = 4, nums = [1,4,4]
Output: 1
Example 3:

Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0

Constraints:

1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104

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)).

二、题解

双指针滑动窗口的思路

j代表滑动窗口末尾的索引,i代表初始索引

class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int n = nums.size();
        int i = 0,sum = 0,len = n + 1;
        for(int j = 0;j < n;j++){
            sum += nums[j];
            while(sum >= target){
                len = min(len,j - i + 1);
                sum -= nums[i];
                i++;
            }
        }
        return len == n + 1 ? 0 : len;
    }
};

http://www.niftyadmin.cn/n/5085636.html

相关文章

探秘PMP和六西格玛的不同:哪一个能为你的职业生涯加分?

今天&#xff0c;我们将带你深入了解一项相对冷门但价值不菲的证书——六西格玛黑带。 可能你曾听说过PMP&#xff0c;但相比之下&#xff0c;六西格玛黑带的资源分享似乎较少&#xff0c;考试内容却更为广泛深入。这里&#xff0c;让我为你详细解析这一考试&#xff0c;带你进…

【Rust基础②】流程控制、模式匹配

文章目录 4 流程控制4.1 if else表达式4.2 循环控制4.2.1 for循环4.2.2 while循环4.2.3 loop循环 5 模式匹配5.1 match和if let5.1.1 match匹配使用match表达式赋值模式绑定_通配符 5.1.2 if let 匹配5.1.3 matches! 宏 5.2 解构Option5.3 认识模式match 分支if let 分支while …

Fast DDS之Logging

目录 配置log输出内容注册Comsumers重置配置XML配置 过滤重置log过滤 ComsumersStdoutConsumerStdoutErrConsumerFileConsumer 禁用log log格式如下&#xff1a; <Timestamp> [<Category> <Verbosity Level>] <Message> (<File Name>:<Line …

vue-cli 输出的模板 html 文件使用条件语句

背景 项目使用的是 vue-cli 脚手架&#xff0c;需要根据不同环境的配置&#xff0c;在输出的 html 模板中使用条件语句来生成不同的代码。 环境变量 在 .env.development 中&#xff0c;定义环境变量 VUE_APP_DISABLE_IP_ACCESStrue使用条件语句 第一种方法&#xff0c;使…

压力测试+接口测试

jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使用方便&#xff0c;是一个比较轻量级的测试工具&#xff0c;使用起来非常简单。因 为jmeter是java开发的&#xff0c;所以运行的时候必须先要安装jdk才可以。jmeter是…

【C++程序员必修第一课】C++基础课程-02:快速入门

1 本课主要内容&#xff1a; 简单介绍 VS2019 开发工具基本使用C 开发基本概念、函数、变量、注释、if 判断、for 循环、while 循环等 2 主要知识点&#xff1a; VS主界面介绍 VS 主界面简单介绍&#xff1b;解决方案下面包含项目&#xff0c;项目下面包含有头文件、源文件…

【计算机毕设选题推荐】幼儿园管理系统SpringBoot+SSM+Vue

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的幼儿园管理系统 技术栈 SpringBootSSMVueMySQLMaven 文章目录 一、幼儿园管…

轻松搭建个人web站点:OpenWRT教程结合内网穿透技术实现公网远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦 &#x1f516;系列专栏&#xff1a; C语言、Linux &#x1f325;️每日语录&#xff1a;山不让尘&#xff0c;川不辞盈。 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web …