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

代码随想录刷题Day26

今天继续回顾关于双指针的使用。

反转字符串中的单词:这道题,双指针的作用是用来作为“单词”的界线划分,不过在使用双指针之前,需要预处理字符串,也就是把多个空格“压缩”为一个空格,这样在后续的双指针确定单词界线时候会更加好操作些。双指针划分好单词界线之后,使用reverse函数先对整个字符串翻转,接着是对单词部分再叠加一次原地翻转。

反转链表:这道题双指针是用在链表的next指针方向反转上,这里其实涉及到三个指针,但是next指针就像swap时候的temp变量的作用,只是暂存一个值而已,主要还是curr指针和pre指针,分别用来指向next指针方向反转的两个节点信息。

删除链表的倒数第N个节点:这道题,我当时自己做出来用的是栈结构的思想,这里使用快慢指针来定位倒数第N这个位置,大致过程如下:

链表相交:这道题,印象中是先找出两个·字符串中较短的那个,然后一个链表用一个指针同步遍历比较,直到出现两个负责不同链表的指针的内容一致的时候就返回。

环形链表II:这道题需要两次使用双指针。第一次是使用快慢指针,快指针一步两个节点,慢指针一步一个节点,直到相遇时候停止继续遍历;接着是再重新用两个步调一致的指针,也就是都是一步一个节点的指针,一个从链表头开始,一个指针从相遇点开始,直到两个指针相遇的地方,就是入环口位置。这个做法是有数学规律推导的。

三数之和、四数之和:这两个题都是使用双指针来减少一层的嵌套,双指针移动是根据和的大小和target值的大小比较来确定的,以及在移动过程中,要注意去重。

这两天看关于双指针的题目,还是觉得双指针的作用还是很多样的,不是局限于一种功能,可以大致分成以下类型:

  • 两个指针,一个用于遍历,一个用于维护某种信息的数据,如移除元素、替换数字
  • 两个指针的功能是类似的,主要功能均是遍历作用,如反转字符串、翻转链表、翻转字符串里的单词、链表相交、三数之和、四数之和
  • 快慢指针,如删除链表的倒数第N个节点、环形链表II
http://www.xdnf.cn/news/1261135.html

相关文章:

  • Pytest项目_day10(接口的参数传递)
  • WORD接受修订,并修改修订后文字的颜色
  • Autosar AP功能组状态和模型进程是否预定义后不改变了?
  • Electron——窗口
  • 嵌入式硬件接口总结
  • 2025华数杯数学建模A题【 多孔膜光反射性能的优化与控制】原创论文分享
  • 6、图片上方添加波浪效果
  • Java开发者的AI革命:飞算JavaAI全流程实战与对比评测
  • Java基础知识总结
  • Harbor 企业级实战:单机快速上手 × 高可用架构搭建 × HTTPS安全加固
  • 宝龙地产债务化解解决方案二:基于资产代币化与轻资产转型的战略重构
  • 微信小程序性能优化
  • 宝龙地产债务化解解决方案一:基于资产代币化与轻资产转型的战略重构
  • 【高等数学】第八章 向量代数与空间解析几何——第三节 平面及其方程
  • C语言中的数据结构--树
  • apache cgi测试
  • 安全合规1--实验:ARP欺骗、mac洪水攻击、ICMP攻击、TCP SYN Flood攻击
  • 操作系统-实验-进程
  • 以下是使用这款ePub编辑器将指定章节转换为TXT文本文档的操作方法
  • (已解决)IDEA突然无法使用Git功能
  • 手机拍照识别中模糊场景准确率↑37%:陌讯动态适配算法实战解析
  • hyper-v虚拟机启动失败:Virtual Pci Express Port无法打开电源,因为发生错误,找不到即插即用设备
  • SQL Server 2019搭建AlwaysOn高可用集群
  • Money Sums
  • 【优选算法】BFS解决拓扑排序
  • UE4/UE5 Android 超大(视频)文件打包/防拷贝方案
  • Linux 内存管理之page folios
  • node.js 学习笔记2 进程/线程、fs
  • (已解决)Mac 终端上配置代理
  • 人工智能与智能家居:家居生活的变革