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

双指针算法总结

双指针

常见的双指针有两种形式:对撞指针,左右指针。

对撞指针:

对撞指针一般用于顺序结构中,也称左右指针。

• 对撞指针从两端向中间移动。以个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼近。
• 对撞指针的终止条件⼀般是两个指针相遇或者错开(也可能在循环内部找到结果直接跳出循
环),也就是:left == right (两个指针指向同一个位置)left > right (两个指针错开)

快慢指针:

快慢指针又称为龟兔赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动。这种方法对于处理数组或者环形链表非常有用。如果我们要研究的问题出现循环往复的情况时,均可考虑使快慢指针的思想。

题目:

普通双指针

283. 移动零

1089. 复写零

202. 快乐数

11. 盛最多水的容器

611. 有效三角形的个数

剑指 Offer 57. 和为s的两个数字

15. 三数之和

18. 四数之和

27. 移除元素

344. 反转字符串

剑指 Offer 05. 替换空格

151. 反转字符串中的单词

206. 反转链表

19. 删除链表的倒数第 N 个结点

面试题 02.07. 链表相交

977. 有序数组的平方

941. 有效的山脉数组

滑动串口

209. 长度最小的子数组

3. 无重复字符的最长子串

1004. 最大连续1的个数 III

1658. 将 x 减到 0 的最小操作数

904. 水果成篮

438. 找到字符串中所有字母异位词

30. 串联所有单词的子串

76. 最小覆盖子串

二分查找

704. 二分查找

35. 搜索插入位置

852. 山脉数组的峰顶索引

162. 寻找峰值

153. 寻找旋转排序数组中的最小值

剑指 Offer 53 - II. 0~n-1中缺失的数字

相关文章:

双指针算法总结

双指针 常见的双指针有两种形式:对撞指针,左右指针。 对撞指针: 对撞指针一般用于顺序结构中,也称左右指针。 • 对撞指针从两端向中间移动。以个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼…...

开源照片管理服务LibrePhotos

本文是为了解决网友 赵云遇到的问题,顺便折腾的。虽然软件跑起来了,但是他遇到的问题,超出了老苏的认知。当然最终问题还是得到了解决,不过与 LibrePhotos 无关; 什么是 LibrePhotos ? LibrePhotos 是一个自托管的开源…...

Linux指令

1 Linux 系统目录结构 /bin 存放系统指令(可执行文件) /boot 存放linux系统开机引导程序 /dev 存放设备文件的地方 /etc 存放系统配置文件的地方 /home 存放用户家目录的地方。 /lib和/lib64 存放系统动态链接库的地方。 /lostfound linux文件系统下特有…...

如何在Mac电脑上安装WeasyPrint:简单易懂的步骤

1. 安装homebrew 首先需要确保安装了homebrew,通过homebrew安装weasyprint可以将需要的库都安装好,比pip安装更简单快捷。 安装方法如下: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&qu…...

手机电脑scoket通信 手机软件 APP inventor 服务端程序python

python scoket 通信 再帮助同学坐课题的时候接触到了scoket通信,了解到这应该是基层网络通信的原理,于是就导出搜索了一下相关的资料,简单来说scoket通信就是,可以让不同设备在同一个网络环境的条件下,可以实现相互通…...

软考高级之系统架构师之系统安全性和保密性设计

今天是2023年08月31日,距离软考高级只有65天,加油! 备注:资料搜集自网络。 基础 信息必须依赖于存储、传输、处理及应用的载体(媒介)而存在。信息系统安全可以划分设备安全、数据安全、内容安全和行为安…...

FPGA实现电机转速PID控制

通过纯RTL实现电机转速PID控制,包括电机编码器值读取,电机速度、正反转控制,PID算法,卡尔曼滤波,最终实现对电机速度进行控制,使其能够渐近设定的编码器目标值。 一、设计思路 前面通过SOPC之NIOS Ⅱ实现电…...

C++中的volatile

volatile的本意是“易变的”,是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可…...

数学建模--一维插值法的多种插值方式的Python实现

目录 1.算法流程步骤 2.算法核心代码 3.算法效果展示 1.算法流程步骤 #算法的核心就是利用scipy中的interpolate来完成工作 #一共是5种一维插值算法形式: #插值方法:1.阶梯插值 2.线性插值 3.2阶样条插值 4.3阶样条插值 #"nearest"阶梯插值 #"zero&…...

爱校对:让法律、医疗、教育行业的文本更加无懈可击

在今天这个信息爆炸的世界里,文本准确性成了法律、医疗和教育这些严谨行业中一个不能忽视的要点。一个小错误可能造成严重的后果,甚至影响人们的生命和事业。这正是为什么更多的专业人士开始选择使用“爱校对”来确保他们的文档、研究和通讯无懈可击。 法…...

使用pip下载第三方软件包报错超时处理方法

报错如下: WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by ‘ReadTimeoutEr ror(“HTTPSConnectionPool(host‘files.pythonhosted.org’, port443): Read timed out. (read timeout15)”)’: /p…...

计算古坐标——基于GPlates Web Service的坐标点重建

Gplates客户端和在线门户,pygplates和gplately是存在内在联系的应用,它们主要实现可视化,输入板块模型和化石点的现今坐标信息,在GPlates中可视化呈现,点位的坐标计算并不展现。而rgplates利用R语言提供了直接进行坐标…...

智安网络|加强软件供应链安全保障:共同抵御威胁的关键路径

在当今数字化时代,软件供应链安全成为了一个备受关注的话题。各行各业都依赖于软件产品和服务来支持其业务运营。然而,随着供应链的不断扩大和复杂化,软件供应链安全问题也日益突出。那么应该如何解决? 首先,软件供应…...

华为Mate 60系列发售,北斗卫星通信技术进一步深入大众消费市场

近日,华为Mate 60系列手机在没有举办发布会的情况下在官方商城突然上架开售,人气火爆。 值得一提的是,华为Mate60 Pro支持卫星通话,无地面网络时,也能拨打和接听卫星电话,还可自由编辑卫星消息。华为 Mate6…...

Grad-CAM,即梯度加权类激活映射 (Gradient-weighted Class Activation Mapping)

Grad-CAM,即梯度加权类激活映射 (Gradient-weighted Class Activation Mapping),是一种用于解释卷积神经网络决策的方法。它通过可视化模型对于给定输入的关注区域来提供洞察。 原理: Grad-CAM的关键思想是将输出类别的梯度(相对于特定卷积…...

程序发布——使用pyinstaller打包识别程序为exe可执行文件 详解

当我们使用python完成项目开发后,必然面对着如何将自己的程序分享给其他人使用,这就离不开程序的打包工作。对于大多数人而言,我们还是使用windows电脑居多,因此我们在大多数场景是需要将程序打包为exe的可执行文件。笔者将在本章节详细介绍使用pyinstaller进行打包的全过程…...

Docker 使用

简介 Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 Docker…...

电脑c盘变红满了怎么清理?4个方法轻松清理!

“我的电脑才用了不到一年,现在就已经满了!电脑c盘变红满了应该怎么清理呢?有什么方法能帮我清理的干净一点吗?希望大家给我出出主意。” 随着我们使用电脑时间的增多,电脑C盘可能会变得满满当当,这会不仅会…...

【UE 材质】实现角度渐变材质、棋盘纹理材质

目标 步骤 一、角度渐变材质 1. 首先通过“Mask”节点将"Texture Coordinate" 节点的R、G通道分离 2. 通过“RemapValueRange”节点将0~1范围映射到-1~1 可以看到此时R通道效果: G通道效果: 继续补充如下节点 二、棋盘纹理材质 原视频链接&…...

[深度学习]1. 深度学习知识点汇总

本文记录了我在学习深度学习的过程中遇到过的不懂的知识点,为了方便翻阅,故将其发表于此,随时更新,供大家参考。 深度学习常见知识点 1. 测试精度和训练精度 在深度学习中,测试精度和训练精度是两个重要的指标&#…...

从‘古董’协议到云存储桥梁:聊聊FTP在现代开发中的那些‘真香’应用场景

从‘古董’协议到云存储桥梁:聊聊FTP在现代开发中的那些‘真香’应用场景 当谈到文件传输协议时,很多人第一反应可能是"这不是上个世纪的技术吗?"。确实,FTP(File Transfer Protocol)诞生于1971年,比大多数程…...

Tomcat安全防护指南:如何用TomcatScanPro检测CVE-2017-12615和AJP文件包含漏洞

Tomcat安全防护实战:从漏洞检测到加固的全链路解决方案 在企业级Java应用部署中,Tomcat作为最流行的Web服务器之一,其安全性直接关系到业务系统的稳定运行。本文将深入剖析两个高危漏洞(CVE-2017-12615和AJP文件包含)的…...

vLLM-v0.11.0保姆级部署教程:5分钟搞定LLaMA/Qwen高速推理服务

vLLM-v0.11.0保姆级部署教程:5分钟搞定LLaMA/Qwen高速推理服务 你是不是也遇到过这样的烦恼?好不容易搞到一个不错的开源大模型,比如LLaMA或者Qwen,想部署成服务试试效果,结果发现速度慢得像蜗牛,内存占用…...

Retinexformer Unleashed: A Deep Dive into Transformer-Based Low-Light Image Enhancement

1. Retinexformer:当Transformer遇见低光图像增强 深夜拍的照片总是又暗又糊?Retinexformer可能是目前最聪明的AI解决方案。这个将Transformer架构与Retinex理论结合的创新模型,在ICCV 2023上以6dB的性能优势碾压传统方法。我实测过它的增强效…...

别再为OpenGL窗口发愁了!用Clion+Freeglut 3.4.0快速搭建你的第一个3D立方体(Windows 11环境)

用ClionFreeglut快速搭建3D立方体的完整指南 为什么选择Freeglut而不是GLFW? 对于刚接触OpenGL的开发者来说,第一个拦路虎往往不是图形学原理本身,而是如何快速搭建一个可运行的开发环境。市面上有GLFW、SDL、GLUT等多种窗口管理库&#xf…...

intv_ai_mk11实际作品:10组真实业务提示词生成结果(含政务/教育/金融)

intv_ai_mk11实际作品:10组真实业务提示词生成结果(含政务/教育/金融) 1. 模型能力概览 intv_ai_mk11是基于Llama架构的中等规模文本生成模型,特别适合处理通用问答、文本改写、解释说明等任务。通过本地部署的Web界面&#xff…...

别再用if-else了!用状态机重构你的51单片机红外循迹小车代码(思路+代码对比)

用状态机重构51单片机红外循迹小车:告别if-else的工程化实践 当你的红外循迹小车代码开始变得像意大利面条一样混乱时,是时候考虑一种更优雅的解决方案了。想象一下,每次需要新增一个传感器或者修改转向逻辑时,都要在几十个if-els…...

OpenClaw技能开发入门:为Qwen3-14b_int4_awq扩展自定义功能

OpenClaw技能开发入门:为Qwen3-14b_int4_awq扩展自定义功能 1. 为什么需要自定义技能? 去年冬天,我花了整整两周时间手动整理公司项目的技术文档。每天重复着复制、粘贴、格式调整的机械操作,直到偶然发现OpenClaw这个开源自动化…...

CES Asia 2026打造低空经济生态圈:从整机到核心部件全链覆盖

北京,2026年3月31日电——低空经济产业正迈向全链协同、规模化落地的关键阶段。CES Asia 2026将于6月10—12日在北京举办,以全产业链覆盖精准供需对接资本赋能为核心,构建从整机到核心部件的完整低空经济生态圈,助力企业一站式打通…...

Wan2.1 VAE与MySQL联动:构建带用户历史记录的图像生成平台

Wan2.1 VAE与MySQL联动:构建带用户历史记录的图像生成平台 你有没有想过,自己用AI生成的每一张图片,都能被自动保存下来,形成一个专属的创意作品集?今天,我们就来动手搭建一个这样的平台。它不仅能让你用W…...