算法第七天:leetcode之209.长度最小的子数组

一、长度最小的子数组

    209.长度最小的子数组的链接:https://leetcode.cn/problems/minimum-size-subarray-sum/

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

  提示:

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

  进阶:

  • 如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。

  双指针滑动窗口的基础知识如下链接所示,感兴趣的读者可以点击或者复制该链接进行查阅和学习:

 https://mp.csdn.net/mp_blog/creation/editor/139633714

   本题使用滑动窗口的算法知识解题,以下是部分c++代码(省略力扣给出的代码块内容):

        int sum=0, i=0;int l=0;int result=INT32_MAX;for(int j=0;j<nums.size();j++){sum+=nums[j];while(sum>=target){l=j-i+1;result=min(result, l);sum=sum-nums[i];i++;}}return result==INT32_MAX ? 0 : result;

二、长度最小的子数组的基本思路

  1.  定义起始位置i,和终止位置j,然后不断调节子序列的起始位置和终止位置,定义一个最大值result去查找通过不断调节找最小的子数组;
  2. 用for循环查找,先求滑动窗口的数值之和,在和目标值target比较;
  3. 为什么用while循环?因为要一直循环查找,而且还要判断条件,所以用while循环比较好。取子序列的长度i,然后去找最小的子数组,sum=sum-num[i++],通过更新i的值,从而去不断变更初始位置i;
  4. 最后如果result没有被赋值,则返回0,说明没有符合条件的子序列。如果被赋值,则返回result。

 三、结言

    感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您有用的滑动窗口算法知识和启发。如果您有任何问题或意见,请随时联系我或在评论区评论。希望本题的算法知识对大家有帮助,我会一直持续更新算法知识的博客哦,谢谢各位读者的支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RPA助力企业办公流程自动化:真实应用案例展示

在当今快速变化的商业环境中&#xff0c;企业面临着前所未有的挑战和机遇。数字化转型已成为企业提升竞争力、优化运营效率和增强客户体验的关键策略。RPA数字员工作为这一转型过程中的重要工具&#xff0c;正在帮助企业实现办公流程的自动化&#xff0c;从而加速数字化转型的步…

[力扣题解] 701. 二叉搜索树中的插入操作

题目&#xff1a;701. 二叉搜索树中的插入操作 思路 二叉搜索树的查找规律&#xff1a;要插入的值val比当前节点大&#xff0c;往右走&#xff0c;比当前节点小&#xff0c;往左走&#xff1b; 代码 Method 1 class Solution { public:void travel(TreeNode* cur, int val…

Aeron:Multi-Destination-Cast

Multi-Destination-Cast&#xff08;MDC&#xff09;是一种功能&#xff0c;允许 Aeron 从单个 Publication 同时向多个目的地传送数据。Multiple-Destination-Cast是 Aeron 的一项高级功能&#xff0c;本指南将介绍如何开发一个简单示例的基本知识。 一、MDC Publications 注&…

正则表达式 - 在线工具

正则表达式 - 在线工具 正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是一种强大的文本处理工具&#xff0c;它允许用户通过特定的模式匹配和操作字符串。在编程、数据分析和文本处理等领域&#xff0c;正则表达式被广泛应用。随着技术的发展&a…

MAP REDUCE

大数据处理框架概念 定义&#xff1a;由一系列组件构成&#xff0c;负责对数据系统中的数据进行计算。组件&#xff1a; 处理引擎&#xff1a;实际执行数据操作的独立组件。处理框架&#xff1a;包含多个协同工作的组件。 框架与引擎的区别 引擎&#xff1a;单一的&#xf…

NV-Embed论文阅读笔记

这是NVIDIA的一篇论文&#xff0c;LLM通常使用的是GPT的decoder范式作为一个生成模型&#xff0c;文章探讨如何利用这样的decoder生成模型来实现BERT这样的encoder的功能&#xff0c;即提取有效的embedding。现有的方法提取embedding的方式无非是 1 mean pooling&#xff1b; 2…

计算机相关专业是否仍是“万金油”的选择?

亲爱的朋友们&#xff1a; 2024 年高考已然落幕&#xff0c;数百万高三学子站在了人生的重要十字路口&#xff0c;面临着选择大学专业这一关键抉择。在这个节点上&#xff0c;计算机相关专业是否还能被称为“万金油”的选择呢&#xff1f; 相信大家都知道&#xff0c;在最近这几…

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用

经典神经网络(11)VQ-VAE模型及其在MNIST数据集上的应用 我们之前已经了解了PixelCNN模型。 经典神经网络(10)PixelCNN模型、Gated PixelCNN模型及其在MNIST数据集上的应用 今天&#xff0c;我们了解下DeepMind在2017年提出的一种基于离散隐变量&#xff08;Discrete Latent va…

celery骚操作之把任务写在类中可能造成的问题

celery注册异步函数是模块级别的&#xff0c;也就是同个模块不能有同名函数&#xff0c;比如搞个骚操作&#xff0c;将celery任务写在类中如下(注意这个静态方法是个特殊的装饰器&#xff0c;他实际是个描述器&#xff0c;他必须写在最上面) 实际注册的任务是apps.business.tas…

java:sqlj2ava的静态字段保护

不论是Thrift RPC还是SpringWeb服务&#xff0c;服务方法的输入和输出参数都要通过网络在Server/Client之间传输。实现数据对象传输&#xff0c;发送端需要对数据对象进行序列化(JSON或二进制数据流)&#xff0c;接收端需要对收到的数据反序列化还原为原始的数据对象。 从3.32.…

萤石视频接入api接口示例

api官方文档 文档概述 萤石开放平台API文档 (ys7.com) 方法层: @Value("${video.appKey}")private String appKey;@Value("${video.appSecret}")private String appSecret;@Overridepublic String getToken(String appKey, String appSecret) {OkHtt…

3D视觉引导机器人提升生产线的自动化水平和智能化程度

随着智能化技术的不断发展&#xff0c;汽车制造企业正积极寻求提升智能化水平的途径。富唯智能的3D视觉引导机器人抓取技术为汽车制造企业提供了一种高效、智能的自动化解决方案。 项目目标 某汽车制造企业希望通过引入智能化技术提升生产线的自动化水平和智能化程度。他们希望…

小抄 20240610

1 不要轻易主动帮人&#xff0c;你一主动&#xff0c;本来是他的事&#xff0c;现在成了你的事&#xff0c;你做的稍微有点不如愿&#xff0c;他还要反过来埋怨你。 2 网上经常炫富的有两种人&#xff0c; 一种是穷人&#xff0c;通过炫富来掩盖自己自卑的内心。 一种是靠炫富…

数字时代PLM系统的重要性

什么是 PLM&#xff08;产品生命周期管理&#xff09;&#xff1f; 从最基本的层面上讲&#xff0c;产品生命周期管理 (PLM)是管理产品从最初构思、开发、服务和处置的整个过程的战略流程。换句话说&#xff0c;PLM 意味着管理产品从诞生到消亡所涉及的一切。 什么是 PLM 软件…

43.139.152.26 P2315 分数计算

从键盘读入一个分数算式&#xff0c;为2个分数做加法或者减法&#xff0c;请输出分数算式的结果&#xff0c;结果也用分数表达&#xff0c;且约分到最简形式。&#xff08;请注意&#xff1a;做减法可能得到负的分数&#xff0c;如果是负数要输出负号-&#xff0c;如1/15-4/15结…

python错题(3)

round四舍五入 title()把单词首字母大写 all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE&#xff0c;如果是返回 True&#xff0c;否则返回 False。 元素除了是 0、空、None、False 外都算 True 。空元组、空列表返回值为True&#xff0c;这里要特…

2023数A题——WLAN网络信道接入机制建模

A题——WLAN网络信道接入机制建模 思路&#xff1a;该题主要考察的WLAN下退避机制建模仿真。 资料获取 问题1&#xff1a; 假设AP发送包的载荷长度为1500Bytes&#xff08;1Bytes 8bits&#xff09;&#xff0c;PHY头时长为13.6μs&#xff0c;MAC头为30Bytes&#xff0c;MA…

是否可以外链代发?

当然是可以的&#xff0c;代发外链是一种有效的提升网站SEO排名和流量的方法。通过在高质量的网站上发布包含你网站链接的内容&#xff0c;可以提高你网站的权重和可信度。而在所有代发外链的方式中&#xff0c;GPB外链无疑是最好的选择。 GPB外链&#xff0c;每一条GPB外链都是…

【UE4】角色御剑飞行的蓝图实现

沉沉更鼓急&#xff0c;渐渐人声绝 吹灯窗更明&#xff0c;月照一天雪 UE4简单的实现御剑飞行的功能 契子✨ 所谓的御剑飞行的原理就跟 《御板》 飞行的原理差不多&#xff0c;不过是在人物脚上插把剑在飞行的时候显示出来罢了。简单来讲就是只要渲染做的足够牛&#xff0c;土鸡…

App上架和推广前的准备

众所周知&#xff0c;App推广的第一步是上架各大应用下载市场&#xff0c;然后才是其他推广渠道。所以本文主要分两部分&#xff0c;第一部分主要介绍的是上架各大应用市场方面的准备&#xff0c;第二部分主要介绍的是其他渠道推广方面的准备。 一、App上架前的准备 1.1 上架…