面试经典150题——滑动窗口
文章目录
- 1、长度最小的子数组
- 1.1 题目链接
- 1.2 题目描述
- 1.3 解题代码
- 1.4 解题思路
- 2、无重复字符的最长子串
- 2.1 题目链接
- 2.2 题目描述
- 2.3 解题代码
- 2.4 解题思路
- 3、串联所有单词的子串
- 3.1 题目链接
- 3.2 题目描述
- 3.3 解题代码
- 3.4 解题思路
- 4、最小覆盖子串
- 4.1 题目链接
- 4.2 题目描述
- 4.3 解题代码
- 4.4 解题思路
1、长度最小的子数组
1.1 题目链接
点击跳转到题目位置
1.2 题目描述
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的
子数组
[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104
1.3 解题代码
class Solution {public int minSubArrayLen(int target, int[] nums) {int left = 0;int right = -1;int n = nums.length;int sum = 0;int min_len = n + 1;while(right < n - 1){++right;sum += nums[right];while(sum >= target){min_len = Math.min(min_len, right - left + 1);sum -= nums[left];left++;} }if(min_len == n + 1){return 0;}return min_len;}
}
1.4 解题思路
- 使用滑动窗口解决问题。
- 滑动窗口向右移动,右指针移动,总和增加的,一旦总和大于等于目标值,左指针开始移动,每次移动前都更新一下长度,然后更新sum值(减少),直到sun值小于target后重新开始移动右指针。
2、无重复字符的最长子串
2.1 题目链接
点击跳转到题目位置
2.2 题目描述
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
提示:
- 0 <= s.length <= 5 * 104
- s 由英文字母、数字、符号和空格组成
2.3 解题代码
class Solution {public int lengthOfLongestSubstring(String s) {int left = 0;int right = -1;int n = s.length();int len = 0;Set<Character> hash = new HashSet<Character>();while(right < n - 1){++right;char ch = s.charAt(right);if(!hash.contains(ch)){hash.add(ch);} else{while(hash.contains(ch)){hash.remove(s.charAt(left));++left;}hash.add(ch);}len = Math.max(len, right - left + 1);}return len;}
}
2.4 解题思路
- 滑动窗口解决该问题。
- 右指针右移,如果当前所指的字符不在集合里面,直接把该字符添加进字符中;如果当前所指的字符在集合里面,去除左指针所指的字符,并右移动,直到右指针所指的字符在集合中查询不到,最后再将右指针所指的字符添加进去。
- 再上述操作执行完毕后更新一下最长的长度。
3、串联所有单词的子串
3.1 题目链接
点击跳转到题目位置
3.2 题目描述
给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。
-
s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。
-
例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 - “efcdab” 都是串联子串。 “acdbef” 不是串联子串,因为他不是任何 words 排列的连接。
返回所有串联子串在 s 中的开始索引。你可以以 任意顺序 返回答案。
提示:
- 1 <= s.length <= 104
- 1 <= words.length <= 5000
- 1 <= words[i].length <= 30
- words[i] 和 s 由小写英文字母组成
3.3 解题代码
3.4 解题思路
4、最小覆盖子串
4.1 题目链接
点击跳转到题目位置
4.2 题目描述
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。
4.3 解题代码
在这里插入代码片
4.4 解题思路
。
相关文章:
面试经典150题——滑动窗口
文章目录 1、长度最小的子数组1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、无重复字符的最长子串2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、串联所有单词的子串3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 4、最小覆盖子串4.1 题目链接4.2 题目描…...
MiFlash 线刷工具下载合集
MiFlash 线刷工具下载合集 MiFlash 线刷工具下载合集 – MIUI历史版本相较于小米助手的刷机功能,线刷还是偏好使用 MiFlash。特点是界面简单纯粹,有自定义高级选项,可以选择刷机不上 BL 锁,自定义刷机脚本,EDL 刷机模…...
【MySQL高级】第1-4章
第1章 存储过程 1.1 什么是存储过程? 存储过程可称为过程化SQL语言,是在普通SQL语句的基础上增加了编程语言的特点,把数据操作语句(DML)和查询语句(DQL)组织在过程化代码中,通过逻辑判断、循环等操作实现复杂计算的程序语言。 换…...
课程设计项目之基于Python实现围棋游戏代码
项目介绍 游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考 效果预览 源码下载 h…...
uni-app tab 双击事件监听
1、data中定义属性,用于临时记录点击次数 tabClick: {touchNum: 0 },2、添加页面事件监听方法 onTabItemTap(e) {this.tabClick.touchNumsetTimeout(()>{if(this.tabClick.touchNum > 2){// 双击执行代码区}this.tabClick.touchNum 0}, 250) },个人博客&am…...
如何在Maxscript脚本中检查磁盘可用空间?
在我们实际工作中,有时需要在工作开始之前检查磁盘的可用空间,比如渲染。 当然,我们可以人工很容易查看电脑中各个磁盘的空间使用情况,但是,如果是Maxscript插件完成的工作,那么如何才能实现其工作之前对磁…...
pytorch梯度上下文管理器介绍
PyTorch 提供了多种梯度上下文管理器,用于控制自动梯度计算 (autograd) 的行为。这些管理器在训练、推理和特殊需求场景中非常有用,可以通过显式地启用或禁用梯度计算,优化性能和内存使用。 主要梯度上下文管理器 torch.no_grad(): 功能&am…...
Redis Stream:实时数据处理的高效解决方案
Redis Stream:实时数据处理的高效解决方案 引言 在当今这个数据驱动的时代,实时数据处理对于各种应用场景都至关重要。Redis,作为一个高性能的键值存储系统,自然也紧跟这一趋势,推出了Redis Stream——一种用于处理实…...
使用交换机构建简单局域网
创建交换机SW-1 交换机接口规划 序号交换机名接口连接设备接口类型1SW-1Ethernet 0/0/1Host-1默认2SW-1Ethernet 0/0/2Host-2默认3SW-1Ethernet 0/0/5Host-3默认4SW-1Ethernet 0/0/6Host-4默认 主机IP规划 Host-1:192.168.64.11/24,接入SW-1 Ethernet…...
基于MATLAB的冰箱水果保鲜识别系统
摘要:本作品旨在研究和实现基于MATLAB软件的冰箱水果保鲜识别系统,针对多种常见水果混合的图像进行处理和识别。首先,根据水果与背景的差异选择合适的阈值,对图像进行去噪和对比度增强,然后进行二值化处理。接下来&…...
Flink源码解析之:Flink On Yarn模式任务提交部署过程解析
Flink源码解析之:Flink On Yarn模式任务提交部署过程解析 一、Flink on Yarn部署模式概述 Apache Hadoop YARN 在许多数据处理框架中都很流行。 Flink 服务提交给 YARN 的 ResourceManager,后者会在 YARN NodeManagers 管理的机器上生成容器。 Flink 将…...
吊舱激光测距核心技术详解!
一、核心技术 吊舱激光测距的核心技术主要体现在激光发射与接收、信号处理与距离计算、以及数据校正与优化等方面。 激光发射与接收: 激光发射器:产生经过调制的激光束,该激光束具有特定的频率和波形。这些激光束被投射到目标物体上。 光…...
[ZJCTF 2019]NiZhuanSiWei
检查通过 file_get_contents 函数读取 $text 变量指定的文件内容是否等于字符串 "welcome to the zjctf"。 测试了一下直接传参,然后进入下一阶段,通过php伪协议读取useless.php发现不行,我们使用data协议将其输入进去试试 读取到…...
Kafka配置公网或NLB访问(TCP代理)
这套配置适用于TCP代理和公网访问 分几种场景,正常来说我们直接使用kafka IP地址访问就行,考虑到网络架构和环境安全,需要使用公网或代理访问kafka时就需要对kafka进行一些额外配置 EXTERNAL这个地址需要监听本地地址,之后kafka…...
大模型推理:vllm多机多卡分布式本地部署
文章目录 1、vLLM分布式部署 docker镜像构建通信环境配置 2、其他大模型部署工具3、问题记录参考文献 单台机器GPU资源不足以执行推理任务时,一个方法是模型蒸馏量化,结果就是会牺牲些效果。另一种方式是采用多台机器多个GPU进行推理,资源不…...
clickhouse-backup配置及使用(Linux)
一、下载地址 Releases Altinity/clickhouse-backup GitHub 二、上传到服务器解压安装 自行上传至服务器,解压命令: tar xvf clickhouse-backup-linux-amd64.tar.gz 三、创建软连接 sudo ln -sv build/linux/amd64/clickhouse-backup /usr/local/bin/…...
【YashanDB知识库】启动yasom时报错:sqlite connection error
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7817893.html?templateId1718516 【标题】启动yasom时报错:sqlite connection error 【问题分类】安装部署 【关键字】错误码sqlite3.Error、yasom启动失败、共享集群 、u…...
JAVA学习笔记_Redis进阶
文章目录 初识redisredis简介windows启动redis服务器linux启动redis服务器图形用户界面客户端RDM redis命令常用数据类型特殊类型字符串操作命令Key的层级格式哈希操作命令列表操作命令集合操作命令有序集合操作命令通用命令 java客户端Jedisjedis连接池SpringDataRedis序列化手…...
LabVIEW手部运动机能实验系统
在运动科学、人机交互和康复训练等领域,手部运动功能的研究具有重要的应用价值。开发了一个基于LabVIEW的手部运动机能实验系统设计,该系统利用力量作为关键参数,通过实时数据采集和反馈帮助受试者完成精确的手部动作,同时为研究人…...
SpringBoot的注解@SpringBootApplication及自动装配
目录 一、pom文件 二、SpringBootApplication注解 1.SpringBootApplication 2.Configuration 3.这个启动类也可以被看成是一个配置类 三、SpringBootApplication注解2 1.SpringBootConfiguration 2.Configuration 3.EnableAutoConfiguration!!&…...
精准识别胡椒成熟度!YOLO-AVCA-CBAMNet 让智慧农业更高效
点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID|计算机视觉研究院 学习群|扫码在主页获取加入方式 https://pmc.ncbi.nlm.nih.gov/articles/PMC12830288/ 计算机视觉研究院专栏 Column of Computer Vision Institute 本文提出YOLO-…...
Autovisor智慧树刷课终极指南:2025最全自动化学习解决方案
Autovisor智慧树刷课终极指南:2025最全自动化学习解决方案 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树网课而烦恼吗?每…...
百万WordPress站点告急!Avada Builder插件曝高危漏洞,你的后台还安全吗?
最近WordPress圈子里又炸开了锅。一款装机量突破百万的网红插件——Avada Builder,被安全团队揪出了两个致命漏洞。这事儿要是处理不及时,轻则数据库密码泄露,重则整个站点被人翻个底朝天。更扎心的是,攻击门槛低到离谱࿰…...
RunAsTI终极指南:如何获取Windows最高TrustedInstaller权限
RunAsTI终极指南:如何获取Windows最高TrustedInstaller权限 【免费下载链接】RunAsTI Launch processes with TrustedInstaller privilege 项目地址: https://gitcode.com/gh_mirrors/ru/RunAsTI 在Windows系统管理中,有时即使拥有管理员权限也无…...
Egg.js重构Controller最佳实践:自定义核心组件与架构优化指南
Egg.js重构Controller最佳实践:自定义核心组件与架构优化指南 【免费下载链接】examples Store all egg examples in one place 项目地址: https://gitcode.com/gh_mirrors/examples109/examples Egg.js作为企业级Node.js框架,其Controller层是业…...
CANN/asc-devkit SIMD数据搬运API
LoadUnzipIndex 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode…...
Python随机密码生成器实战
求赞 求关注 当然写的不怎么好,因为我才刚初一,更新速度也慢。 如果想下载这里有链接 https://download.csdn.net/download/mc54321/91240180 正文开始 在编写这个程序我们需要导入random模块。 import random random 模块是 Python 标准库中的一个…...
CANN/asc-devkit流水线屏障同步API
PipeBarrier(ISASI) 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://git…...
Pixelle-Video全球化架构:智能AI短视频引擎的多语言解决方案
Pixelle-Video全球化架构:智能AI短视频引擎的多语言解决方案 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixelle-Video作…...
迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧)
迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧) 迷宫寻路算法一直是编程学习者和算法爱好者热衷探索的领域。其中,流水算法因其独特的物理模拟思路而备受关注。但在实际实现过程中&#x…...
