力扣209-长度最小的子数组-滑动窗口思想

题目

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

思路

用一个for循环来完成两个for循环的工作,滑动窗口思想

Q1:一个for循环中的j应该指向滑动窗口的末端还是滑动窗口的开始位置?

如果指向开始位置,那么找到那个末端就很难,需要他从开端位置全部遍历寻找,如果是末端的话,末端先移动,然后前面的指针在移动就可,所以应该是后端

Q2:循环中应该是for循环还是while循环

如果数组是1111 100,target是100,遍历到最后,sum=104然后前面指针开始缩小范围,缩小一个变成103,继续缩小...所以需要一直进行,if只进行一次,所以需要用while。

代码

class Solution {public int minSubArrayLen(int target, int[] nums) {int result=Integer.MAX_VALUE;//把他设置成最大值,也就是integer类型的最大值int sum=0;int i=0;for(int j=0;j<nums.length;j++){//这是滑动窗口的末端sum+=nums[j];while(sum>=target){//如果sum>=target,那么就可以缩小前面的指针,找到最小的子数组result=Math.min(result,j-i+1);//这些子数组的集合中找到最小的sum-=nums[i];i++;//移动前面指针}}return result==Integer.MAX_VALUE ?0:result;}
}

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

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

相关文章

TCP单包数据大于1460字节会被拆包的问题

关于TCP单包数据大于1460字节会被拆包的问题 1、问题背景&#xff1a; 最近在用STM32W5500做项目&#xff0c;需要STM32通过TCP协议发送数据到上位机并显示。当数据量小的时候上位机显示正常&#xff0c;一旦数据量大过大上位机就会出现数据丢失的情况&#xff0c;甚至数据直接…

LeetCode392:判断子序列

题目链接&#xff1a;392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {int len1 s.size();int len2 t.size();int result 0;vector<vector<int> > dp(len1 …

通过滑动控制 图片3d(多张视频序列帧图片) 展示

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>控制图片变化</title> <style>img {…

深入理解InnoDB底层原理:从数据结构到逻辑架构

💡 无论你是刚刚踏入编程世界的新人,还是希望进一步提升自己的资深开发者,在这里都能找到适合你的内容。我们共同探讨技术难题,一起进步,携手度过互联网行业的每一个挑战。 📣 如果你觉得我的文章对你有帮助,请不要吝啬你的点赞👍分享💕和评论哦! 让我们一起打造…

ctfshow(259->261)--反序列化漏洞--原生类与更多魔术方法

Web259 进入界面&#xff0c;回显如下&#xff1a; highlight_file(__FILE__);$vip unserialize($_GET[vip]); //vip can get flag one key $vip->getFlag();题干里还提示了网站有一个flag.php界面&#xff0c;源代码如下&#xff1a; $xff explode(,, $_SERVER[HTTP_X…

k8s_Pod健康检查

Kubernetes 3种探针介绍 LivenessProbe&#xff08;存活探针&#xff09; LivenessProbe 用于检查容器是否仍然活着。如果探针检测到容器已经失去响应&#xff0c;Kubernetes 将重启该容器。这通常用来修复由于内部状态错误或死锁引起的程序失效问题。 作用&#xff1a;检测容器…

常见的音视频格式介绍

目录 aac格式介绍&#xff08;ADTS&#xff09;h264格式分析FLV和MP4格式介绍 aac格式介绍&#xff08;ADTS&#xff09; aac的格式有两种&#xff1a;ADIF不常用&#xff0c;ADTS是主流&#xff0c;所以这里主要讲解ADTS。简单来说&#xff0c;ADTS可以在任意帧解码&#xff…

校园表白墙源码修复版

此校园表白墙源码基于thinkphp&#xff0c;因为时代久远有不少bug&#xff0c;经本人修复已去除大部分bug&#xff0c;添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…

基于机器学习的个性化电影推荐系统【源码+安装+讲解+售后+文档】

【1】系统介绍 研究背景 随着互联网技术的迅速发展&#xff0c;数字娱乐内容特别是电影和电视剧的数量急剧增加。用户在享受丰富内容的同时&#xff0c;也面临着选择困难的问题&#xff0c;即“信息过载”。传统的搜索和分类方法已经无法满足用户日益增长的个性化需求。与此同…

多款云存储平台存在安全漏洞,影响超2200万用户

据苏黎世联邦理工学院研究人员Jonas Hofmann和Kien Tuong Turong的发现&#xff0c;端到端加密&#xff08;E2EE&#xff09;云存储平台存在一系列安全问题&#xff0c;可能会使用户数据暴露给恶意行为者。在通过密码学分析后&#xff0c;研究人员揭示了Sync、pCloud、Icedrive…

一位Go开发者的深度访谈:从进阶到实战,《Let’s Go Further!》如何开拓Go语言新世界

读者&#xff1a;我最近在学习Go&#xff0c;发现构建API和Web应用方面还是有很多挑战&#xff0c;尤其是需要兼顾代码架构、性能和扩展性。您作为一位Go语言技术专家&#xff0c;怎么看《Let’s Go Further!》这本书呢&#xff1f; 专家&#xff1a;这本书确实很有意思。《Le…

【npm的软硬原理】

npm link用来在本地项目和本地npm模块之间建立连接&#xff0c;可以在本地进行模块测试 具体用法&#xff1a; 1. 项目和模块在同一个目录下&#xff0c;可以使用相对路径 npm link …/module 2. 项目和模块不在同一个目录下 cd到模块目录&#xff0c;npm link&#xff0c…

三维管线管网建模工具MagicPipe3D V3.5.3

经纬管网建模系统MagicPipe3D&#xff0c;本地离线参数化构建地下管网三维模型&#xff08;包括管道、接头、附属设施等&#xff09;&#xff0c;输出标准3DTiles、Obj模型等格式&#xff0c;支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析&…

【Android】MVP架构

MVP架构简介 MVP&#xff08;Model-View-Presenter&#xff09;是一种常见的软件架构模式&#xff0c;尤其在Android应用开发中被广泛使用。它将应用程序分为三层&#xff1a;Model、View 和 Presenter&#xff0c;以实现职责分离&#xff0c;提高代码的可维护性和可测试性。 …

设计模式4 适配器 (adapter)

一句话&#xff0c;适配器按照客户的需求, 适配当前已有的接口。 目标接口&#xff1a;reqeust() public interface Target {void request(); //this is client needed interface }已有接口&#xff1a;specificRequest package com.example.adapter;import android.uti…

基于自适应VSG控制的光伏混合储能构网型逆变系统MATLAB仿真模型

模型简介 此模型源侧部分采用光伏发电系统与混合储能系统&#xff08;蓄电池超级电容&#xff09;&#xff0c;并网逆变器采用虚拟同步发电机&#xff08;VSG&#xff09;控制&#xff0c;为系统提供惯量阻尼支撑。同时对VSG控制部分进行了改进&#xff0c;采用构造函数法对虚…

论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection

文章目录 Abstract1.Introduction2.Scale VariationProposed Method3.1Network Overview3.2Aggregate Interaction Module3.3 Self-Interaction Module3.4Consistency-Enhanced Loss 4.Experiments4.1Implementation Details4.2 Comparison with State-of-the-arts4.3Ablation …

了解AIGC——自然语言处理与生成

AIGC——自然语言处理与生成&#xff1a;揭秘AI如何生成语言 近年来&#xff0c;AIGC&#xff08;AI Generated Content&#xff09;技术迅猛发展&#xff0c;自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;与生成技术的结合&#xff0c;使得机器不仅…

宝塔-修改docker加速镜像-daemon.json配置文件格式错误!

一&#xff1a;一般docker的加速配置文件在&#xff1a;/etc/docker/daemon.json 1.1但是有时会发现没有这个文件可以用vim /etc/docker/daemon.json 加上这个文件 {"registry-mirrors": ["https://ccr.ccs.tencentyun.com","https://自己的阿里的…

【力扣】[Java版] 刷题笔记-21. 合并两个有序链表

题目&#xff1a; 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 从题目和示例可以看出&#xff0c;应该是要循环遍历链表进行比较&#xff0c;然后组成新的链表。 第一种&#xff1a;递归…