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

【LeetCode】双指针专项合集

前言本章练习双指针左右碰撞指针目的掌握左右指针向中间移动最终相会的解法。在下面这几道题中思考不同题目中指针移动逻辑有什么区别125验证回文串题目要求判断一个字符串是否是回文串有两个条件限制1.忽略大小写2.忽略非字母和数字核心思路用双指针左右夹逼流程图1.left 从左开始2.right 从右开始3.跳过非字母/数字4.比较转小写后是否相等不等 → false相等 → 继续代码实现intleft0,rights.length()-1;while(leftright){//跳过非字母数字while(leftright!Character.isLetterOrDigit(s.charAt(left))){left;}while(leftright!Character.isLetterOrDigit(s.charAt(right))){right--;}//比较部分if(Character.toLowerCase(s.charAt(left))!Character.toLowerCase(s.charAt(right))){returnfalse;}left;right--;}returntrue;总结理解本题流程先跳过非字母数字再进行比较不看大小写Character.isLetterOrDigit去除非字母数字Character.toLowerCase忽略大小写344反转字符串题目要求反转字符串条件限制必须原地修改不能开新数组代码实现intleft0,rights.length-1;while(leftright){chartemps[left];s[right]s[left];s[right]temp;left;right--;}总结无15三数之和题目要求找出数组中所有和为 0 的三元组核心思路排序 固定一个数 双指针找另外两个流程1.先排序方便去重使用双指针2.固定第一个数i使得nums[left]nums[right]-nums[i]3.双指针找剩下两个数lefti1, rightn-1sum0 leftsum0 right–;sum0 正确4.去重i去重/left /和right 去重(避免造成结果一致)代码实现classSolution{publicListListIntegerthreeSum(int[]nums){ListListIntegerresnewArrayList();Arrays.sort(nums);for(inti0;inums.length;i){// 去重if(i0nums[i]nums[i-1])continue;intlefti1;intrightnums.length-1;while(leftright){intsumnums[i]nums[left]nums[right];if(sum0){left;}elseif(sum0){right--;}else{res.add(Arrays.asList(nums[i],nums[left],nums[right]));// 去重只在找到答案后while(leftrightnums[left]nums[left1])left;while(leftrightnums[right]nums[right-1])right--;left;right--;}}}returnres;}}总结思路固定一个i用双指针找到符合条件的一组答案题目要求不含重复说明我们还需要进行去重操作977有序数组的平方题目要求给你一个“已经排好序”的数组可能有负数返回每个数的平方并且结果也要有序核心思路双指针从两边往 中间选“大的平方”判断左平方与右平方的大小讲大的放入代码实现publicint[]sortedSquares(int[]nums){intnnums.length;int[]resnewint[n];intleft0,rightn-1;intindexn-1;while(leftright){intlnums[left]*nums[left];intrnums[right]*nums[right];if(lr){res[index]l;left;}else{res[index]r;right--;}index--;}returnres;}11盛水最多的容器题目要求给你是个数组height每个数代表了一根柱子的高度需求选两根柱子装最多的水核心思路双指针从中间往两边移计算完面积移动短的那一边面积的大小主要受最短边的影响left 0, right n - 1计算面积更新最大值移动较小的一边重复直到相遇代码实现intleft0,rightheight.length-1;intmax0;while(leftright){inthMath.min(height[left],height[right]);intwright-left;if(height[left]height[right]){left;}else{right--;}}returnmax;总结寻找最短边算面积想到双指针的运用42接雨水题目要求给你一个数组 height表示每个柱子的高度需求下雨之后能接多少水核心思路最多能接多少水公式当前能接水 min(左最大, 右最大) - 当前高度代码实现intleft0,rightheight.length-1;intleftMax0,maxRight0;intres0;while(leftright){if(height[left]height[right]){leftMaxMath.min(leftMax,height[left]);resleftMax-height[left];left;}else{rightMaxMath.min(rightMax,height[height]){resrightMax-height[right];right--;}}returnres;理解本题res结果的计算是通过每一小格盛水量相加得到的。并不是像上一题一样一块一块进行计算。每一格的容量是min(左墙, 右墙) - 自己高度本章总结双指针专项练习我们做了六道题本质只有三类1.对称处理两边往中间2.查找组合固定夹逼三数之和3.利用单调性(谁小动谁)我们在面对上指针题目时首先要搞清楚指针什么时候动例如三数之和 sum 0 → leftsum 0 → right–盛最多水的容器谁是最短边动谁接雨水谁小算谁leftMax / rightMax双指针的灵魂不是“两个指针”而是利用问题的“单调性 / 对称性 / 约束关系”来安全地缩小搜索范围

相关文章:

【LeetCode】双指针专项合集

前言 本章练习:双指针:左右碰撞指针 目的:掌握左右指针向中间移动,最终相会的解法。 在下面这几道题中:思考不同题目中指针移动逻辑有什么区别 125:验证回文串 题目要求: 判断一个字符串是否是回…...

Linux GPIO驱动开发实战:从传统接口到新式gpiod

一、顶级架构一句话总结 设备树(gpio描述) → GPIO子系统 → gpiod接口 → 硬件引脚控制 GPIO是嵌入式开发中最基础的外设接口,Linux提供了新旧两套API,新式gpiod接口更安全、更简洁。二、GPIO子系统架构 架构层次 ┌─────────────────…...

强化学习(3)--最优状态价值最优策略

说明:本系列文章是我在学习了西湖大学赵世钰老师的《Mathematical Foundations of Reinforcement Learning》一书后的学习笔记,在B站上有赵老师的完整课程视频。 课程视频链接 PDF教材链接 本文代码链接 一、最优状态价值和最优策略 定义&#xff1a…...

MySQL 运算符详解

MySQL 运算符详解 MySQL 作为一款功能强大的关系型数据库管理系统,其运算符的使用贯穿于 SQL 语句的各个部分。本文将详细介绍 MySQL 中常用的运算符,包括算术运算符、比较运算符、逻辑运算符等,旨在帮助读者全面理解并掌握 MySQL 运算符的使用。 一、算术运算符 算术运算…...

Redis 服务器:全面解析与应用实践

Redis 服务器:全面解析与应用实践 引言 Redis(Remote Dictionary Server)是一款开源的、高性能的键值存储数据库。它采用内存作为存储介质,能够提供极快的读写速度,常用于缓存、会话管理、消息队列等领域。本文将全面解析Redis服务器的原理、配置、应用场景以及实践操作…...

机械臂+强化学习

机械臂 经典机械臂控制方法 运动学 动力学 基于...

DVWA——SQL Injection学习笔记

文章目录前言一、是什么&#xff1f;二、步骤1.Low2.Medium3.High4.Impossible代码核心功能安全特性总结总结手工注入&#xff1a;前言 一、是什么&#xff1f; 二、步骤 1.Low 代码如下&#xff1a; <?phpif( isset( $_REQUEST[ Submit ] ) ) {// Get input$id $_REQU…...

2026中国大模型市场火爆!阿里字节抢人才,年薪百万Offer等你来!

最新数据显示&#xff0c;2024年中国大模型市场规模已达294.16亿元&#xff0c;其中多模态大模型贡献156.3亿元&#xff0c;数字人、游戏等场景应用增长迅猛&#xff1b;更有预测指出&#xff0c;2026年这一市场规模将突破700亿元大关。图源自36氪研究院 市场竞争梯队也逐渐清晰…...

Vibe Coding 详细介绍

什么是 Vibe Coding&#xff1f;Vibe Coding&#xff08;氛围编程&#xff09;是由 AI 专家 Andrej Karpathy 在 2024 年初提出的新编程范式——一种"用自然语言编程"的开发方式。你描述"想要什么"&#xff0c;AI 来写代码。核心理念&#xff1a;"You…...

子系统是啥?---总线架构的实例化

目录 一、新手容易踩的认知坑 二、历史演变&#xff1a;从硬编码到子系统设备树的转变 &#xff08;1&#xff09;原始裸奔时代&#xff1a;无结构体、无设备树、无总线架构 &#xff08;2&#xff09;结构体封装时代&#xff1a;有结构体、无设备树、有总线架构 &…...

【Kali Linux】 2026.1 新功能详解

2026年3月24日发布&#xff0c;基于 2025.4 的更新&#xff0c;带来全新视觉体验和多项新工具&#xff01;&#x1f3a8; 2026 年度主题更新每年惯例的主题大换血&#xff0c;覆盖全流程&#xff1a;组件更新内容引导动画修复了实时镜像卡在第一帧的问题&#xff0c;循环更流畅…...

Java RAG入门基础教程(非常详细),用LangChain4j构建问答系统看这篇就够了!

1. 引言&#xff1a;为什么需要 RAG 1.1 大模型的局限性 在使用大语言模型&#xff08;LLM&#xff09;时&#xff0c;我们常常遇到以下问题&#xff1a; ❌ 问题 1&#xff1a;模型不知道企业内部信息用户&#xff1a;我们公司的年假政策是什么&#xff1f;AI&#xff1a;抱…...

C语言学习的第一周

1.自我介绍我姓马&#xff0c;来自成都的一个双非一本&#xff0c;目前大一&#xff0c;神秘专业&#xff0c;目前学c语言是兴趣使然和为了未来转码作铺垫&#xff0c;多项技能傍身也没错嘛2.学习目标打下c语言的坚实基础&#xff0c;方向初步是逐步从c语言到c再到更深度的知识…...

简易数据采集与分析系统

我用 Trae&#xff08;SOLO Coder&#xff09; 自主开发了这款专为硬件工程师打造的数据分析工具&#xff0c;无需懂代码&#xff0c;点点鼠标即可完成采集卡数据全流程分析。核心功能一键导入采集卡原始 ADC 数据&#xff0c;自动适配 12/16 位分辨率&#xff0c;精准转换为真…...

CSS如何利用Less快速生成颜色渐变背景_使用混合函数生成多样渐变

用带参数的.gradient-bg()混合函数&#xff0c;支持start-color、end-color、direction及透明度微调&#xff0c;避免硬编码&#xff1b;多色用.gradient-bg-stops()&#xff1b;注意转义方向值、变量定义顺序、CSS变量分层及Safari渲染兼容性。Less混合函数怎么写才能生成可复…...

别再让图片拖慢你的多模态模型了:手把手教你用Q-Former和PruMerge压缩视觉Token(附代码)

视觉Token压缩实战&#xff1a;用Q-Former和PruMerge提升多模态模型效率 当你在深夜调试一个多模态问答系统时&#xff0c;突然收到告警——GPU显存爆了。查看日志发现&#xff0c;一张用户上传的4K产品图片生成了超过3万个视觉Token&#xff0c;直接拖垮了整个推理流程。这不是…...

深入解析MCU:从哈佛架构到智能家居应用

1. MCU的哈佛架构揭秘 第一次拆开智能音箱时&#xff0c;我盯着那块指甲盖大小的芯片发愣——这就是控制所有功能的"大脑"&#xff1f;后来才知道&#xff0c;这种叫MCU的微型计算机&#xff0c;核心秘密藏在它的哈佛架构里。想象你同时用两只手写字&#xff1a;左手…...

微信聊天记录导出终极指南:如何快速安全备份你的珍贵回忆

微信聊天记录导出终极指南&#xff1a;如何快速安全备份你的珍贵回忆 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾经因为手机丢失或系统升级&#xff0c;担心…...

HsMod:革新性炉石传说增强工具,全方位提升游戏体验

HsMod&#xff1a;革新性炉石传说增强工具&#xff0c;全方位提升游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 一、你是否也面临这些游戏痛点&#xff1f; 当你兴致勃勃地开启…...

Linux学习进展 计算机基本硬件结构

学习Linux系统&#xff0c;本质上是掌握“软件如何操控硬件”的逻辑——Linux作为开源操作系统&#xff0c;其内核与硬件的深度绑定的特性&#xff0c;决定了我们必须先理解计算机基本硬件结构&#xff0c;才能更清晰地明白Linux内核的调度机制、资源管理逻辑&#xff0c;以及后…...

Excel文件压缩难?这4个方法让文件秒变小,传输再也不卡壳!

在数据驱动的办公场景中&#xff0c;Excel文件的"臃肿"问题越来越普遍。比如财务部门每月导出的销售报表&#xff0c;因包含近百张动态图表和历史数据&#xff0c;文件大小可能达到几十MB&#xff1b;市场调研团队收集的问卷数据&#xff0c;若未做图片压缩&#xff…...

基于springboot+vue高校物资信息采购系统hx0807

文章目录详细视频演示技术介绍功能介绍核心代码系统效果图源码获取详细视频演示 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 技术介绍 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomca…...

【2026春招必看】MiniMax大模型算法岗面试深度解析:薪资福利+核心考点+项目经验!手把手教你冲刺高薪Offer!

今天给大家梳理出来minmax的福利待遇&#xff0c;顺便分享面试大模型算法岗的面试题。喜欢本文记得收藏、关注、点赞。 废话不多说&#xff0c;我们要开车了。 薪资介绍 月薪&#xff08;base&#xff09; 应届/初级&#xff08;1–2年&#xff09;&#xff1a;35K–50K / 月中…...

十大AI写作工具迎来深度评测,AIGC论文助手从功能性、稳定性等维度出发,量化分析其核心表现。

工具名称 核心优势 适用场景 aicheck 快速降AIGC率至个位数 AIGC优化、重复率降低 aibiye 智能生成论文大纲 论文结构与内容生成 askpaper 文献高效整合 开题报告与文献综述 秒篇 降重效果显著 重复率大幅降低 一站式论文查重降重 查重改写一站式 完整论文优化…...

5分钟搞懂LLM、Token、Agent,解锁AI核心价值!

本文深入浅出地解析了AI核心概念&#xff0c;从基础的大语言模型&#xff08;LLM&#xff09;到Token、Tools、Skills、MCP&#xff0c;再到智能体&#xff08;Agent&#xff09;的演进。强调了AI虽擅长语言生成但缺乏实际操作能力&#xff0c;并通过工具和接口&#xff08;Too…...

MTK平台Camera移植避坑指南:从驱动添加到DWS配置的完整流程(基于Kernel 4.19)

MTK平台Camera移植避坑指南&#xff1a;从驱动添加到DWS配置的完整流程&#xff08;基于Kernel 4.19&#xff09; 在嵌入式设备开发中&#xff0c;Camera模块的移植往往是系统集成中最具挑战性的环节之一。特别是基于MTK平台的Android设备&#xff0c;Camera驱动的移植涉及从内…...

从LLM到A2A:AI工程师必备7大核心概念解析,掌握AI未来!

从 LLM 到 A2A&#xff1a;AI 工程师必须掌握的七个核心概念 大模型 API Agent MCP Skill A2A 全景解析 你是否曾经困惑&#xff1a;调用一个大模型 API 和「部署一个 Agent」到底有什么本质区别&#xff1f;MCP 和 Skill 都是「能力扩展」&#xff0c;为什么需要两套机制…...

5分钟上手libhv:用自带httpd和curl工具快速搭建本地测试服务

5分钟实战libhv&#xff1a;零配置构建高效本地HTTP测试环境 第一次听说libhv时&#xff0c;我正被一个紧急的前后端联调任务逼得焦头烂额。当时需要快速搭建一个模拟API服务&#xff0c;但Node.js环境配置卡在了权限问题上&#xff0c;Python的SimpleHTTPServer又无法满足复杂…...

Python 办公自动化封神篇:PDF+Word 全自动处理,从此告别复制粘贴!

前言每天对着一堆 PDF 合并拆分、Word 改格式、手动做报表&#xff1f;重复操作又累又容易错&#xff0c;Python 几行代码就能全自动搞定&#xff01;这篇不讲废话、不搞应试&#xff0c;全是能直接用在工作 / 学习 / 小项目的干货&#xff0c;从读取、创建、批量生成到美化排版…...

数字后端 | Innovus 中解决 Congestion 的常用方法

前言 Congestion&#xff08;布线拥塞&#xff09;是数字后端实现中常见的问题。当局部区域标准单元过密、pin 密度过高或走线方向冲突时&#xff0c;就会出现 Congestion&#xff0c;最终可能导致 DRC 违例增多甚至布线失败。本文介绍在 Innovus 中如何查看和分析 Congestion&…...