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

经典滑动窗口试题(一)

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、将x减到0的最小操作数
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 二、无重复的最长子串
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 三、最大连续为1的个数
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现
  • 四、长度最小的子数组
    • 1、题目讲解
    • 2、讲解算法原理
    • 3、代码实现


一、将x减到0的最小操作数

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:int minOperations(vector<int>& nums, int x) {int n=nums.size(),ret=0,sum=0,target,len=-1;for(int i=0;i<n;i++)ret+=nums[i];target=ret-x;if(target<0)  return -1;for(int left=0,right=0;right<n;right++){sum+=nums[right];while(sum>target)sum-=nums[left++];if(sum==target)len=max(len,right-left+1);}if(len==-1) return len;else return n-len;}
};

二、无重复的最长子串

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:int lengthOfLongestSubstring(string s) {int n=s.size();int count[128]={0},len=0;for(int left=0,right=0;right<n;right++){count[s[right]]++;while(count[s[right]]==2)count[s[left++]]--;len=max(len,right-left+1);}return len;}
};

三、最大连续为1的个数

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n=nums.size(),zero=0,len=0;for(int left=0,right=0;right<n;right++){if(nums[right]==0) zero++;while(zero>k)if(nums[left++]==0) zero--;}return len;}
};

四、长度最小的子数组

1、题目讲解

在这里插入图片描述

2、讲解算法原理

在这里插入图片描述

3、代码实现

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

相关文章:

经典滑动窗口试题(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、将x减到0的最小操作数1、题目讲解2、讲解算法原理3、代码实现 二、无重复的最长子串1、题…...

【paddlepaddle】

安装paddlepaddle 报错 ImportError: /home/ubuntu/miniconda3/envs/paddle_gan/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/ubuntu/miniconda3/envs/paddle_gan/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) 替换 /home/ubu…...

String 、StringBuffer 和 StringBuilder 的区别?

String 使用 String 声明一个字符串的时候&#xff0c;该字符串会存放在堆中的字符串常量池中。因为在java中所有的String 都是以常量表示&#xff0c;且由 final 修饰&#xff0c;因此在线程池中它的线程是安全的 且 不可变的 。每个 String 在被创建后就不再发生任何变化。 …...

【DevOps】Git 图文详解(六):Git 利器 - 分支

Git 利器 - 分支 1.分支 Branch2.分支指令 &#x1f525;3.分支的切换 checkout4.合并 merge & 冲突4.1 &#x1f538; 快速合并&#xff08;Fast forward&#xff09;4.2 &#x1f538; 普通合并4.3 处理冲突 <<<<<<< HEAD 5.变基 rebase 分支是从主…...

万界星空科技QMS质量管理系统介绍

QMS&#xff08;Quality Management System&#xff09;质量管理系统是五大基础系统之一&#xff0c;在工业企业中被广泛的应用&#xff0c;在质量策划、生产过程质量监督、体系审核和文档管理等业务上发挥着不可替代的作用。 一般制造业工厂现状&#xff1a;质量成本高&#x…...

C练习题_14

一、单项选择题&#xff08;本大题共 20小题&#xff0c;每小题 2分&#xff0c;共 40分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案&#xff0c;并将所选项前的字母填写在答题纸的相应位置上。) 以下叙述不正确的是&#xff08;&#xff09; A.一个C源程序可…...

解决方案 | 政策与技术加持,法大大电子劳动合同让人事管理更省心

政策加持&#xff0c; 助力劳动合同电子化推广 近年来&#xff0c;国家人社部多次发文&#xff0c;明确电子劳动合同法律效力&#xff0c;鼓励推广电子劳动合同全面应用&#xff0c;积极引导、支持企业和劳动者依法规范订立电子劳动合同&#xff0c;优化人力资源社会保障公共服…...

Linux基础命令5

su——切换用户命令 例如&#xff0c;切换到stu用户底下 而切换到管理员的命令就是下图 切换完的区别就是 stu——root $——# 退出——exit 关机与重启命令 如果在右上角直接点x号&#xff0c;就相当于把电源拔断了&#xff0c;这样做的次数多了&#xff0c;有可能系统就…...

springboot(ssm中医学习服务管理系统 医学生在线学习平台Java(codeLW)

springboot(ssm中医学习服务管理系统 医学生在线学习平台Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或…...

springboot宠物领养系统-计算机毕设 附源码 44261

springboot宠物领养系统 摘 要 网络发布信息有其突出的优点&#xff0c;即信息量大&#xff0c;资源丰富&#xff0c;更新速度快等&#xff0c;很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个网上宠物领养系统&#xff0c;为宠物爱好者提供一个信息…...

性能测试必备知识-使用MySQL存储过程构造大量数据:实例解析

在软件开发过程中&#xff0c;测试是一个不可或缺的环节。通过测试&#xff0c;我们可以发现并修复软件中的各种问题&#xff0c;提高软件的质量和稳定性。然而&#xff0c;手动编写大量的测试用例是一项耗时且容易出错的任务。为了解决这个问题&#xff0c;我们需要学会使用批…...

最新绿豆APP源码苹果CMS影视插件版本/原生JAVA源码+反编译开源+免授权

源码简介&#xff1a; 最新绿豆APP源码苹果CMS影视插件版本&#xff0c;它是原生JAVA源码反编译开源免授权&#xff0c;绿豆影视对接苹果CMS&#xff0c;它可以支持多功能自定义DIY页面布局。 1、新版绿豆视频APP视频6.1插件版反编译指南及教程 2、后端插件开源&#xff0c;可…...

SPSS多元对应分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…...

Rust语言特性探秘:宏的魔力

大家好&#xff01;我是lincyang。 今天我们继续深入探讨Rust语言中的一个有趣而强大的特性——宏&#xff08;Macros&#xff09;。 宏在Rust中扮演着特殊的角色&#xff0c;不仅提高了代码的灵活性&#xff0c;还增强了代码的可重用性。接下来&#xff0c;我们会通过具体的…...

2023最全的Web自动化测试介绍

做测试的同学们都了解&#xff0c;做Web自动化&#xff0c;我们主要用Selenium或者是QTP。 有的人可能就会说&#xff0c;我没这个Java基础&#xff0c;没有Selenium基础&#xff0c;能行吗&#xff1f;测试虽然属于计算机行业&#xff0c;但其实并不需要太深入的编程知识&…...

Unity 控制物体透明度变化

1.需求 给物体绑定一个脚本&#xff0c;这个脚本实现物体的透明度渐变变化&#xff0c;并且可以重置回原来的颜色。物体为Unity自带的材质Shader为Standard。 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Transpare…...

django及DRF流程源码分析

Django执行流程: 1.nginx作为接入层,通过反向代理&#xff0c;监听80端口获取请求连接 2.将请求交给wsgi server 3.wsgi server调用django的wsgi.py 处理请求 4.WSGIHandler的__call__函数就是整个逻辑处理流程 5.WSGIHandler __init__中的加载中间件&#xff0c;对request对象…...

Ajax入门-Express框架介绍和基本使用

电脑实在忒垃圾了&#xff0c;出现问题耗费了至少一刻钟time&#xff0c;然后才搞出来正常的效果&#xff1b; 效果镇楼 另外重新安装了VScode软件&#xff0c;原来的老是报错&#xff0c;bug。。&#xff1b; 2个必要的安装命令&#xff1b; 然后建立必要的文件夹和文件&…...

Linux加强篇001-部署Linux系统

目录 一、前言 1.1准备工具 1.2安装配置VM虚拟机 1.3安装软件 1.4系统初始化进程 1.5重置root密码 二、巩固练习 1&#xff0e;为什么建议读者在下载系统文件后先进行校验而不是直接安装呢&#xff1f; 2&#xff0e;使用虚拟机安装Linux系统时&#xff0c;为什么要先…...

LeetCode算法题解(动态规划)|LeetCode343. 整数拆分、LeetCode96. 不同的二叉搜索树

一、LeetCode343. 整数拆分 题目链接&#xff1a;343. 整数拆分 题目描述&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…...

LittleBigMouse终极指南:彻底解决Windows多显示器鼠标移动不连贯问题

LittleBigMouse终极指南&#xff1a;彻底解决Windows多显示器鼠标移动不连贯问题 【免费下载链接】LittleBigMouse DPI Aware mouse move across screens 项目地址: https://gitcode.com/gh_mirrors/li/LittleBigMouse 你是否在使用4K和1080p显示器混搭时&#xff0c;经…...

BitNet b1.58-2B-4T-GGUF一文详解:GGUF格式适配、bitnet.cpp编译与加载逻辑

BitNet b1.58-2B-4T-GGUF一文详解&#xff1a;GGUF格式适配、bitnet.cpp编译与加载逻辑 1. 项目概述 BitNet b1.58-2B-4T-GGUF 是一款突破性的大语言模型&#xff0c;采用创新的1.58-bit量化技术。这个模型将传统神经网络权重压缩到仅使用-1、0、1三个值表示&#xff0c;平均…...

Arcade-plus:从音乐节奏玩家到专业谱面设计师的终极指南

Arcade-plus&#xff1a;从音乐节奏玩家到专业谱面设计师的终极指南 【免费下载链接】Arcade-plus A better utility used to edit and preview aff files 项目地址: https://gitcode.com/gh_mirrors/ar/Arcade-plus 你是否曾梦想将自己喜欢的音乐转化为令人着迷的节奏游…...

通过Taotoken CLI一键配置环境变量快速接入视频生成工具链

通过Taotoken CLI一键配置环境变量快速接入视频生成工具链 1. 准备工作 在开始使用Taotoken CLI配置视频生成工具链之前&#xff0c;需要确保已满足以下条件&#xff1a;Node.js 16或更高版本已安装在开发环境中&#xff0c;这是运行Taotoken CLI的基础要求。团队成员应各自拥…...

STM32和STM32CubeMX实现遥控器控制, 保姆级教程

【背景】各位&#xff0c;现在无人车和机器人大发展&#xff0c;但是&#xff0c;大家也都看到了&#xff0c;在无人车和机器人能够自动控制之前&#xff0c;都是用遥控器来控制的。那么&#xff0c;实现一个遥控器的控制&#xff0c;就变得非常有必要。然而&#xff0c;实际情…...

GPX Studio终极指南:3分钟学会免费在线编辑GPS轨迹文件

GPX Studio终极指南&#xff1a;3分钟学会免费在线编辑GPS轨迹文件 【免费下载链接】gpxstudio.github.io The online GPX file editor 项目地址: https://gitcode.com/gh_mirrors/gp/gpxstudio.github.io 你是否经常需要处理GPS轨迹文件却苦于找不到合适的工具&#xf…...

突破二分查找局限!SIMD Quad 算法在不同平台展现卓越性能优势

查找算法选择在查找已排序数组中的某个值时&#xff0c;有线性查找和二分查找等算法。线性查找是逐个遍历数组元素&#xff0c;C 里用 std::find 函数实现。对于大型数组&#xff0c;二分查找更出色&#xff0c;它通过持续将搜索区间一分为二定位目标值&#xff0c;C 中 std::b…...

程序员离婚流程指南:你的代码、期权、知识产权和加班,都写在民法典婚姻法律里

你可能不知道&#xff0c;你每天敲的代码、手里的期权、甚至深夜加班的时间和强度&#xff0c;都可能成为离婚时财产分割和抚养权争夺中的关键因素。对于技术从业者来说&#xff0c;婚姻财产问题远比普通人想象的复杂。我一个帮助过多位程序员处理婚姻纠纷的律师&#xff0c;今…...

2026年4月AI大事件 汇总

2026年4月AI大事件 汇总 ● 3月31日: OpenAI官宣完成1220亿美元私募融资&#xff0c;投后估值达8520亿美元&#xff0c;由亚马逊、英伟达、软银领衔&#xff0c;月营收达20亿美元。● 4月2日: ​ ① 微软宣布推出三款自研多模态AI模型&#xff08;MAI-Voice-1、MAI-Transcribe-…...

PHP Swoole对接大模型长连接的7个致命陷阱:90%团队在第3步就崩溃了!

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PHP Swoole对接大模型长连接的现状与挑战 当前&#xff0c;PHP 生态在高并发 AI 服务接入场景中正经历关键转型。Swoole 作为 PHP 原生协程化扩展&#xff0c;凭借其异步 I/O 和长连接能力&#xff0c;…...