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

LeetCode热题100(Java)(3)滑动窗口

本章包括的题目有3. 无重复字符的最长子串 - 力扣LeetCode438. 找到字符串中所有字母异位词 - 力扣LeetCode1.无重复字符的最长子串思路解析要在一个字符串中找出最长的不含重复字符的子串只需维护一个内部无重复的“窗口”在遍历过程中不断扩展并调整这个窗口同时记录它曾经达到的最大长度。由于字符集有限题目使用标准 ASCII共 128 个可以用一个长度为 128 的计数数组来快速判断当前窗口内某个字符是否重复出现。算法使用左右指针 l 和 r 表示窗口的边界。一开始两者都在起始位置计数数组全为零。右指针 r 依次向右移动每次将新进入窗口的字符 s[r] 的计数加 1。如果该字符的计数超过 1说明这个字符在窗口内重复了由于只有新加入的字符可能造成重复此时就不断右移左指针 l并把离开窗口的字符计数减 1直到该重复字符的计数降回 1窗口重新成为无重复子串。每得到一个无重复的窗口就用它的长度 r - l 1 更新历史最大值 ret。当右指针遍历完整个字符串ret 就是最长无重复子串的长度。代码实现class Solution { public int lengthOfLongestSubstring(String s) { int ret 0; int len s.length(); int l 0,r 0; int[] arr new int[128]; for (;r len; r) { arr[s.charAt(r)]; while(arr[s.charAt(r)] 1){ arr[s.charAt(l)]--; l ; } ret Math.max(ret, (r - l 1)); } return ret; } }时间复杂度On空间复杂度O12.找到字符串中所有字母异位词思路解析要在字符串 s 中找出所有与 p 互为字母异位词的子串的起始索引只需用固定大小的滑动窗口在 s 上移动并比较窗口内字符的频数与 p 的频数是否相同。由于题目只涉及小写字母字符集大小固定为 26可以用两个长度为 26 的整数数组分别记录 p 的字符频数和当前窗口的字符频数。首先统计 p 中每个字母的出现次数存入 count。然后初始化一个长度为 |p| 的窗口但预先只将前 |p|-1 个字符的计数填入 count2这样后续循环中就能自然地完成“加入右边界 → 比较 → 移除左边界”的固定节奏。若 count2 与 count 完全相等使用 Arrays.equals 比较说明当前窗口内的子串是 p 的一个字母异位词把窗口的起始索引 i - |p| 1 加入结果列表。比较完成后将窗口左边界字符同样是 i - |p| 1的计数减 1为下一轮滑动做好准备。遍历结束结果列表即为所有异位词子串的起始位置。代码实现class Solution { public ListInteger findAnagrams(String s, String p) { if(p.length() s.length())return new ArrayList(); ListInteger ret new ArrayList(); char[] pp p.toCharArray(); int[] count new int[26]; for(char c: pp){ count[c - a] ; } int[] count2 new int[26]; for (int i 0; i p.length() - 1; i) { count2[s.charAt(i) - a]; } for (int i p.length() - 1; i s.length(); i) { count2[s.charAt(i) - a]; if(Arrays.equals(count,count2))ret.add(i - p.length() 1); count2[s.charAt(i - p.length() 1) - a] --; } return ret; } }补充Arrays.equals(count,count2) 可以比较两个数组是否相同但是 count.equals(count2) 只能比较两者的内存地址引用时间复杂度On空间复杂度O1上一章LeetCode热题100Java2双指针-CSDN博客

相关文章:

LeetCode热题100(Java)(3)滑动窗口

本章包括的题目有: 3. 无重复字符的最长子串 - 力扣(LeetCode) 438. 找到字符串中所有字母异位词 - 力扣(LeetCode) 1.无重复字符的最长子串 思路解析: 要在一个字符串中找出最长的不含重复字符的子串…...

Python农业物联网融合不是“拼接”,而是“重构”:用本体建模+动态权重分配实现作物胁迫预警准确率跃升至94.3%(IEEE IoT Journal 2024最新实践)

更多请点击: https://intelliparadigm.com 第一章:Python农业物联网多源数据融合 多源异构数据接入挑战 现代农业物联网系统常集成土壤温湿度传感器、气象站、无人机遥感影像、边缘摄像头及历史农事日志等多类数据源,其协议(MQT…...

外业人必看:如何把电脑上的CAD图纸快速传到手机,在外业精灵里直接叠加地图做采集?

外业工作者必备:CAD图纸移动化全流程实战指南 站在荒郊野外的测量点上,掏出手机却发现CAD图纸还锁在办公室电脑里——这种场景对测绘、林业、工程等外业工作者来说再熟悉不过。传统工作流中,CAD图纸从设计端到现场端的"最后一公里"…...

FPGA开发者必看:四款热门开发板HDMI接口电路设计对比与选型指南

FPGA开发板HDMI接口设计深度对比:从电路细节到选型策略 当你在项目需求文档中写下"支持HDMI输出"这行字时,真正的挑战才刚刚开始。四款主流FPGA开发板——正点原子达芬奇、小梅哥AX720、米联客ZYNQ7030和ZYNQ7020,它们的HDMI接口电…...

Godot 4插件SmartShape2D:2D地形智能绘制与纹理化工作流

1. 项目概述:SmartShape2D,一个改变2D地形绘制方式的Godot插件如果你在Godot引擎里做过2D游戏,尤其是那些需要大量手绘地形、平台、水体或者复杂背景的项目,一定对多边形绘制和纹理填充的繁琐深有体会。传统的Polygon2D节点虽然基…...

SM2证书链验证失败?SM3摘要跨平台不一致?——Python国密工程化中那3个没有文档记载的ASN.1 DER编码陷阱

更多请点击: https://intelliparadigm.com 第一章:SM2/SM3国密算法工程化落地的现实困境 在金融、政务及关键基础设施领域,SM2(椭圆曲线公钥密码算法)与SM3(密码杂凑算法)已成强制合规要求&…...

基于NestJS与MongoDB的全栈个人空间系统:从架构到部署实战

1. 项目概述:一个现代、全栈的个人空间系统如果你和我一样,折腾过不少博客系统,从WordPress到Hexo,再到各种静态生成器,那你大概也经历过类似的烦恼:要么是后台太重、维护麻烦,要么是功能太单一…...

别再瞎调参数了!手把手教你用Hugging Face Transformers设置大模型temperature、top_p等核心参数

别再瞎调参数了!手把手教你用Hugging Face Transformers设置大模型核心参数 刚接触大模型调参的开发者常陷入两个极端:要么保守地使用默认参数导致输出平庸,要么盲目调整参数组合让结果失控。本文将用代码实例展示如何像专业炼丹师一样精准控…...

GHelper:解锁华硕笔记本终极性能的轻量级开源解决方案

GHelper:解锁华硕笔记本终极性能的轻量级开源解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sc…...

高互动投票制作平台,支持音视频+多客户管理系统

温馨提示:文末有资源获取方式近年来,微信生态中的互动投票依旧是最有效的用户增长方式之一。最近体验了一款全新的投票源码系统V9.8版本,架构全面升级,功能值得一说。源码获取方式在源码闪购网。核心功能亮点多媒体投票支持&#…...

AMD Ryzen处理器终极调试指南:SMUDebugTool完全教程

AMD Ryzen处理器终极调试指南:SMUDebugTool完全教程 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...

别再瞎猜了!Fluent瞬态计算时间步长到底设多少?一个公式+实战案例搞定

Fluent瞬态计算时间步长实战指南:从理论公式到工程决策 看着屏幕上又一次发散的计算结果,我揉了揉太阳穴——这已经是本周第三次因为时间步长设置不当导致模拟失败了。作为计算流体力学工程师,我们都经历过这种挫败:明明物理模型正…...

M2CL模型如何实现多LLM协作的性能突破

1. M2CL模型在多LLM协作中的性能突破最近在ICLR 2026会议上提交的一项研究展示了M2CL模型在多LLM协作中的显著性能提升。作为一名长期从事AI系统研发的工程师,我深入研究了这项工作的技术细节和实际意义,下面将分享我的专业解读和实践经验。多LLM协作系统…...

手把手教你为六轴机械臂配置MoveIt!规划组与预设位姿(附sunday_moveit_config包生成)

六轴机械臂MoveIt!规划组与预设位姿配置实战指南 在工业自动化和服务机器人领域,六轴机械臂因其灵活性和广泛适用性成为核心执行机构。而MoveIt!作为ROS生态中最强大的运动规划框架,能够为机械臂赋予智能避障和路径规划能力。本文将深入讲解如何为sunday…...

抖音内容下载工具的技术架构解析与实现原理

抖音内容下载工具的技术架构解析与实现原理 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&…...

八大网盘直链下载助手:告别限速,享受全速下载体验

八大网盘直链下载助手:告别限速,享受全速下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

Pearcleaner终极指南:如何彻底清理macOS应用残留文件

Pearcleaner终极指南:如何彻底清理macOS应用残留文件 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经疑惑,为什么删除macO…...

LyricsX完全指南:如何在Mac上实现完美的桌面歌词显示体验

LyricsX完全指南:如何在Mac上实现完美的桌面歌词显示体验 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics LyricsX是一款专为Mac用户设计的免费开源iTunes歌词…...

LangGPT结构化提示词设计:5分钟从新手到专家的完整指南

LangGPT结构化提示词设计:5分钟从新手到专家的完整指南 【免费下载链接】LangGPT LangGPT: Empowering everyone to become a prompt expert! 🚀 📌 结构化提示词(Structured Prompt)提出者 📌 元提示词&am…...

3分钟快速上手G-Helper:华硕笔记本终极轻量化控制方案

3分钟快速上手G-Helper:华硕笔记本终极轻量化控制方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sc…...

c语言字符数组与字符串的使用详解

1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[10]{ I, ,a,m, ,‘h,a,p,p,y}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理&#xf…...

AI模型微调效率提升4.8倍,容器化推理延迟压至83ms——Docker AI Toolkit 2026企业级落地全栈实践,仅限首批认证用户解密

更多请点击: https://intelliparadigm.com 第一章:Docker AI Toolkit 2026企业级落地全景概览 Docker AI Toolkit 2026 是面向大规模AI工程化部署的轻量级容器化工具链,深度集成模型推理、数据管道编排、安全沙箱与可观测性能力,…...

Python 3.15 WASM 轻量化部署落地全链路(从CPython源码补丁到浏览器沙箱逃逸防护)

更多请点击: https://intelliparadigm.com 第一章:Python 3.15 WASM 轻量化部署落地全链路概览 Python 3.15 原生支持 WebAssembly(WASM)目标编译,标志着 CPython 运行时正式迈入浏览器与边缘轻量执行环境。该能力依托…...

手把手教你用Synopsys APB VIP验证Watchdog:从环境搭建到中断测试(附完整file.f配置)

手把手教你用Synopsys APB VIP验证Watchdog:从环境搭建到中断测试(附完整file.f配置) 在芯片验证领域,APB总线作为AMBA协议家族中的低速外设接口,广泛应用于各种SOC设计中。Watchdog定时器作为关键的安全外设&#xff…...

【Docker AI沙箱避坑黄金法则】:20年运维专家亲授5大致命陷阱与实时隔离加固方案

更多请点击: https://intelliparadigm.com 第一章:Docker AI沙箱隔离技术的认知重构与本质洞察 传统容器化常被简化为“轻量级虚拟机”,但 Docker 在 AI 工作流中的角色远超进程封装——它正演变为一种**可验证、可审计、可回滚的计算契约载…...

如何用Bedrock Launcher解锁Minecraft基岩版的完整潜力?Windows 10启动器终极指南

如何用Bedrock Launcher解锁Minecraft基岩版的完整潜力?Windows 10启动器终极指南 【免费下载链接】BedrockLauncher 项目地址: https://gitcode.com/gh_mirrors/be/BedrockLauncher 还在为Minecraft基岩版的功能限制感到烦恼吗?想要像Java版那样…...

Cursor 实战:AI 编程的最佳工作流配置(2026 Cursor 3 最新版)

🖱️ Cursor 实战:AI 编程的最佳工作流配置(2026 Cursor 3 最新版) 文章目录🖱️ Cursor 实战:AI 编程的最佳工作流配置(2026 Cursor 3 最新版)📊 先说格局:C…...

基于Tesseract的OCR服务化实践:Docker部署与RESTful API调用指南

1. 项目概述:一个开箱即用的OCR服务化利器如果你正在寻找一个能快速部署、稳定运行,并且能通过简单的HTTP请求就能调用OCR(光学字符识别)能力的服务端解决方案,那么hertzg/tesseract-server这个项目绝对值得你花时间深…...

零基础掌握ComfyUI Manager:让你的AI工作流管理更轻松

零基础掌握ComfyUI Manager:让你的AI工作流管理更轻松 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…...

拯救手机电池寿命:BatteryChargeLimit智能充电限制应用深度解析

拯救手机电池寿命:BatteryChargeLimit智能充电限制应用深度解析 【免费下载链接】BatteryChargeLimit 项目地址: https://gitcode.com/gh_mirrors/ba/BatteryChargeLimit 你是否经历过手机电池一年后续航能力大幅下降的困扰?BatteryChargeLimit正…...