209. 长度最小的子数组

暴力法:超时

  • java
public int minSubArrayLen(int target, int[] nums) {int ans = 0;int n = nums.length;for (int l = 1; l <= n; ++l) {// initializationint sum = 0;for (int i = 0; i < l; i++) {sum += nums[i];}if (sum == target) ans = l;for (int i = l; i < n; i++) {sum = sum - nums[i - l] + nums[i];if (sum == target) {ans = l;break;}}if (ans != 0) break;}return ans;}

大佬非常巧妙的解法:

https://leetcode.cn/problems/minimum-size-subarray-sum/solutions/306066/javade-jie-fa-ji-bai-liao-9985de-yong-hu-by-sdwwld/

使用队列相加(实际上我们也可以把它称作是滑动窗口,这里的队列其实就相当于一个窗口)
我们把数组中的元素不停的入队,直到总和大于等于 s 为止,接着记录下队列中元素的个数,然后再不停的出队,直到队列中元素的和小于 s 为止(如果不小于 s,也要记录下队列中元素的个数,这个个数其实就是不小于 s 的连续子数组长度,我们要记录最小的即可)。接着再把数组中的元素添加到队列中……重复上面的操作,直到数组中的元素全部使用完为止。

在代码中我们不直接使用队列,我们使用两个指针,一个指向队头一个指向队尾

class Solution {public int minSubArrayLen(int target, int[] nums) {int ans = Integer.MAX_VALUE;int l = 0, r = 0;int sum = 0;while (r < nums.length) {sum += nums[r++];while (sum >= target) {ans = Math.min(ans, r - l);sum -= nums[l++];}}return ans == Integer.MAX_VALUE ? 0 : ans;}
}

拓展:
Integer.MAX_VALUE 是 Java 中 int 类型的最大值常量。这个常量的值为 2 31 − 1 2^{31} - 1 2311,即 2147483647。在很多情况下,它被用作一个“无穷大”的标志,因为它是 int 类型能够表示的最大值。在代码中,当需要找到一个最小值的初始参照时,通常会将初始最小值设为 Integer.MAX_VALUE,以便在之后的比较中能够被更小的值所取代。

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

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

相关文章

解决“bat中文路径乱码“问题

今天&#xff0c;在使用.bat脚本&#xff0c;将hello.png从"D:\mypic\备份"目录&#xff0c;拷贝到"D:\mypic\备份"时&#xff1b;发现中文乱码,弹出如下对话框: 图(1) bat中文路径乱码 原来的命令是&#xff1a; copy D:\mypic\one\hello.png D:\mypic\备…

【LangChain学习之旅】—(3) LangChain快速构建本地知识库的智能问答系统

【LangChain学习之旅】—&#xff08;3&#xff09; LangChain快速构建本地知识库的智能问答系统 项目及实现框架开发框架核心实现机制数据准备及加载加载文本文本的分割向量数据库存储文本的“嵌入”概念向量数据库概念 相关信息获取RetrievalQA生成回答并展示示例小结 Refere…

视频-帧数-FPS

帧数&#xff08;FPS&#xff09; 在计算机图形学和视频处理中&#xff0c;帧数&#xff08;Frames per Second&#xff0c;简称FPS&#xff09;指的是每秒显示的图像帧数。视频是由一系列静止的图像帧以一定的速率连续播放而成的&#xff0c;帧数表示每秒播放的图像帧数量。 在…

uboot前传

来源&#xff1a;朱有鹏老师的嵌入式linux核心教程 1、为什么要有uboot 1.1、计算机系统的主要部件 (1)、计算机系统就是有CPU来做核心进行运行的系统。典型的计算机系统有&#xff1a;PC机&#xff08;台式机笔记本&#xff09;、嵌入式设备&#xff08;手机、平板电脑、游戏…

四. 基于环视Camera的BEV感知算法-BEVDet4D

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

【ITK库学习】使用itk库进行图像滤波ImageFilter:频域滤波

目录 1、itkFFTConvolutionImageFilter 快速傅里叶变换计算2、扩展&#xff1a;itkConvolutionImageFilter.h3、itkFFTShiftImageFilter 频率转移滤波器4、itkFFTNormalizedCorrelationImageFilter FFT实现的归一化相关滤波器 1、itkFFTConvolutionImageFilter 快速傅里叶变换计…

java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value

问题描述 使用Springcloudalibaba的nacos作为配置中心&#xff0c;服务启动时报错&#xff1a; java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is …

李超线段树维护斜率dp:P4655

https://www.luogu.com.cn/problem/P4655 这东西长得就很像斜率优化的东西&#xff0c;但是不能用朴素斜率优化&#xff0c;因为横坐标不满足递增。 但我们可以直接用李超线段树维护即可。 #include<bits/stdc.h> using namespace std; #ifdef LOCAL#define debug(...…

【动态规划精选题目】2、路径问题模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解路径问题模型中的6道经典题&#xff0c;会在讲解题目同时给出AC代码 目录 1、不同路径 2、不同路径2 3、珠宝的最大价值 4、下降路径最小和 5、最小路径和 6、地下城游戏 1、不同路径 class Solution { publi…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Pycharm 环境Android环境 相关其它博客工程源代码下载其它资料下载 前言 本项目采用VGG-16网络模型&#xff0c;使用Kaggle开源数据集&#xff0c;旨在提取图片中的用户特征&#xff0c;最终在移…

数据分析-14-基于Python的信用评分卡数据分析(包含代码数据)

文章目录 0. 数据代码下载1. 分析思路2. 理解数据3. 数据清洗3.1 选择子集3.2 列名重命名3.3 缺失数据处理3.4 异常值处理 4. 建立模型4.1 借款逾期超过90天的人数&#xff0c;即借款客户的整体质量情况&#xff1f;4.2 借款人月收入分布情况及月收入对违约客户数量的影响&…

低代码在制造业的应用前景

引言 数字化转型已经成为制造业的必然趋势&#xff0c;为了应对市场的快速变化、提高效率、降低成本&#xff0c;制造业企业不得不追求更智能、更敏捷的生产方式。在这一转型过程中&#xff0c;低代码技术崭露头角&#xff0c;成为了一种强大的工具&#xff0c;有望加速制造业…

PyCharm community 安装教程

目录 链接cudatoolkit 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/other.html 双击打开 安装路径&#xff0c;可自行更换到D盘 不导入设置 链接cudatoolkit

设计模式(2)--对象创建(5)--单件

1. 意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2. 一种角色 单件(Singleton) 3. 优点 3.1 对唯一实例的受控访问 3.2 缩小名空间(对全局变量的改进) 3.3 允许对操作和表示精化(可以有子类) 3.4 允许可变数目的实例 3.5 比类操作更灵活 4. 缺点…

轻松学会使用 SCP 命令在 Linux 中传输文件

前言 在 Linux 系统中&#xff0c;如果你想要轻松地将文件或目录从一个地方传输到另一个地方&#xff0c;scp 命令是你的好帮手。它让文件传输变得简单快捷&#xff0c;就像拷贝和粘贴一样容易。 什么是 SCP&#xff1f; SCP&#xff08;Secure Copy Protocol&#xff09;是…

RFC4861 中文版下

10. 协议常量 路由器常量: MAX_INITIAL_RTR_ADVERT_INTERVAL 16 秒MAX_INITIAL_RTR_ADVERTISEMENTS 3 次发送MAX_FINAL_RTR_ADVERTISEMENTS 3 次发送MIN_DELAY_BETWEEN_RAS 3 秒MAX_RA_DELAY_TIME .5 秒主机常量: MAX_RTR_SOLICITATION_…

python c++ summary pdb gdb frame registers 调试器,栈帧,寄存器的查看

pdb import pdbpdb.set_trace() # 设置追踪断点 命令说明p a打印aq退出n下一行s执行下一行&#xff08;能够进入函数体&#xff09;r执行下一行&#xff08;在函数中时会直接执行到函数返回处&#xff09;w打印堆栈信息unt N执行到第N行disasdisplay assembler code 打印所有…

c++程序设计编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分

编写一个程序&#xff0c;输入N个学生数据&#xff0c;包括学号、姓名、成绩&#xff0c;要求输出这些学生数据并计算平均分。要求&#xff1a; &#xff08;1&#xff09;设计一个学生类Stud&#xff0c;除了包括no(学号)、name(姓名)和deg(成绩)数据成员外&#xff0c;有两个…

【C语言】cache和程序访问的局部性对程序性能的影响

文章目录 1&#xff0e;源程序比较其性能影响2&#xff0e;内存分配&#xff08;1&#xff09;静态存储区&#xff08;static&#xff09;&#xff1a;&#xff08;2&#xff09;栈区&#xff08;stack&#xff09;&#xff1a;&#xff08;3&#xff09;堆区&#xff08;heap&…

msvcp140.dll丢失怎样修复?全面分析msvcp140.dll的修复方法

在执行特定程序时&#xff0c;有可能遭遇msvcp140.dll文件遗失的困扰&#xff0c;此时该如何处理呢&#xff1f;此次将为您讲述面临此类问题的有效解决方案&#xff0c;涉及到多种修复方法&#xff0c;其中包括利用DLL修复工具进行操作。您可依据个人需求选择相应的修复方式&am…