LeetCode 209. 长度最小的子数组 (C++实现)

news/2024/12/25 21:04:51 标签: leetcode, c++, 算法

1. 题目描述

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的
子数组
[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 1:

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

示例 2:

输入:target = 4, nums = [1,4,4]
输出:1

示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

2. 解题思路

首先定义慢指针slow和快指针fast,遍历数组元素,先移动快指针,如果快指针和慢指针中间的元素和大于等于target,记录长度,移动慢指针,遍历完成之后选取最小长度返回。

3. 代码实现

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

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

相关文章

MongoDB 常用操作指南(Docker 环境下)

本文详细介绍如何在 Docker 中操作 MongoDB&#xff0c;包括如何进入命令行、进行用户认证、查看数据库和集合&#xff0c;以及常用的索引操作和其他高频使用的 MongoDB 方法。小白也能轻松上手 1. 在 Docker 中进入 MongoDB 命令行 进入运行 MongoDB 容器的命令行&#xff1a;…

opencv中的常用的100个API

以下是 OpenCV 中常用的 100 个 API&#xff0c;这些 API 涉及图像读取、处理、特征提取、绘图、视频处理等常见操作&#xff1a; 1. 图像操作 cv2.imread(filename, flags) - 读取图像。cv2.imwrite(filename, img) - 保存图像。cv2.imshow(window_name, img) - 显示图像。cv…

《计算机组成及汇编语言原理》阅读笔记:p82-p85

《计算机组成及汇编语言原理》学习第 5 天&#xff0c;p82-p85 总结&#xff0c;总计 4 页。 一、技术总结 1.汇编语言(jasmin) (1)branch instruction Any statement that might cause the PC to change its value is usually called a “branch” instruction. (2) labe…

三维模型中的UV展开是什么意思?它有什么优势?

UV展开涉及将三维模型的表面展开为一个或多个二维区域&#xff0c;以便将纹理图像正确地映射到模型上。这个过程类似于将一个立体物体的表面切割并平铺开来。UV坐标是用于在二维纹理图像中定位颜色和细节的坐标系统&#xff0c;U和V分别代表纹理图像的水平和垂直轴。 UV展开它…

大模型应用—IOPaint 图片去水印

IOPaint 是由 SOTA AI 模型提供支持的免费开源修复和修复工具,可以轻松实现图片去水印,去除图片不需要的部分,是目前效果最好的一个项目!完全免费开源 IOPaint 已经托管到 hugging face上,打开就可以直接免费使用,需要外网环境! 在线免费使用:【链接直达】 如果你需要…

Certifying LLM Safety against Adversarial Prompting

erase-and-check erase&#xff1a;逐一删除prompt中的词元&#xff08;token&#xff09; check&#xff1a;用安全过滤器检查生成的子序列。 如果任何子序列或输入提示本身被过滤器检测为有害&#xff0c;则将该提示标记为有害。 如图&#xff0c;对有对抗性后缀的有害pr…

修改el-select下拉框高度;更新:支持动态修改

文章目录 效果动态修改&#xff1a;效果代码固定高度版本动态修改高度版本&#xff08;2024-12-25 更新&#xff1a; 支持动态修改下拉框高度&#xff09; 效果 动态修改&#xff1a;效果 代码 固定高度版本 注意点&#xff1a; popper-class 尽量独一无二&#xff0c;防止影…

再服务器上建立新的编译环境

文章目录 前言一、建立新的环境1.1使用压缩包建立python环境1.2创建环境1.3查看所有环境的路径1.4查看当前激活环境的路径&#xff1a;1.5删除虚拟环境命令 二、检索服务器的硬件信息三、配置torch三、其他3.1降级numpy3.2清除缓存3.3设置镜像地址3.4关闭环境 总结 前言 基于p…