当前位置: 首页 > news >正文

LCR 008. 长度最小的子数组


文章目录

  • 1.题目
  • 2.思路
  • 3.代码


1.题目

LCR 008. 长度最小的子数组

给定一个含有 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.思路

当需要使用单调性的时候使用滑动窗口,left和right都是从0开始,right负责控制让窗口i变大,left负责控制让窗口变小,时间复杂度是O(N)

3.代码

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int left = 0, right = 0; // 滑动窗口的左右指针int sum = 0,len = INT_MAX; // 窗口内数字的和 记录最小长度,初始值为最大值while (right < nums.size()) {sum += nums[right];++right; // 移动右指针扩大窗// 当窗口内的和大于等于目标值时,尝试收缩窗口while (sum >= target) {// 更新最小长度len = min(len, right - left);// 收缩左边界,减少窗口内的和sum -= nums[left];left++;}}// 如果没有找到符合条件的子数组,返回0return len == INT_MAX ? 0 : len;}
};

http://www.lryc.cn/news/445673.html

相关文章:

  • uniApp 解决uniapp三方地图获取位置接口的请求次数限制问题,分别提供 Android 和 iOS 的实现方法(原生插件获取)
  • Zabbix Agent 监控 MySQL 进程状态
  • 【模型】感知器
  • HtmlCss 基础总结(基础好了才是最能打的)五
  • 图神经网络实战——分层自注意力网络
  • 基于深度学习的数字识别系统的设计与实现(python、yolov、PyQt5)
  • ChatGPT 提取文档内容,高效制作PPT、论文
  • 3、等保1.0 与 2.0 的区别
  • Angular面试题九
  • (转载)智能指针shared_ptr从C++11到C++20
  • Ubuntu 上安装 Miniconda
  • 【Vue系列五】—Vue学习历程的知识分享!
  • CaLM 因果推理评测体系:如何让大模型更贴近人类认知水平?
  • 深入探索卷积神经网络(CNN)
  • 【C++篇】手撕 C++ string 类:从零实现到深入剖析的模拟之路
  • 毕业设计选题:基于ssm+vue+uniapp的校园失物招领小程序
  • [系统设计总结] - Proximity Service算法介绍
  • 变压吸附制氧机的应用范围
  • MATLAB绘图基础8:双变量图形绘制
  • Appium高级话题:混合应用与原生应用测试策略
  • windows源码安装protobuf,opencv,ncnn
  • MicroPython 怎么搭建工程代码
  • Android studio安装问题及解决方案
  • 前端面试题(二)
  • 【C++】stack和queue的使用及模拟实现
  • MongoDB解说
  • 问:JAVA中唤醒阻塞的线程有哪些?
  • Github Webhook触发Jenkins自动构建
  • ESP32-WROOM-32 [创建AP站点-客户端-TCP透传]
  • 新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面