代码随想录day12|双指针总结

初步对双指针题型做总结:
个人理解,双指针在于将2层for降低为1次for。
功能上:有快慢/读写/前后作用
数组
27. 移除元素
快(读)指针遍历数组
慢(写)指针更细数组
字符串
344.  反转字符串--实现reverse函数
内部用swap函数,前后指针逼近中位
54.替换数字
resize函数(内部放迭代器,左闭右开)
写指针从新字符串后往前
读指针从旧字符串后往前
151.翻转字符串里的单词
要求:去掉头尾多余空格,保留中间空格,单词内部顺序保持,外部顺序颠倒
链表
206.反转链表
前指针指向链表前一个元素,后指针指向链表当前元素,用tmp保留后一个元素
19.删除链表的倒数第n个元素
快指针先走n步,慢指针随后跟上,移动速度一样
160.链表相交
双指针,一个指针对一个链表,先对齐长度,然后以相同移动速度移动,比较指针
142.环形链表
数学方法
注意while循环的跳出条件
快指针(配速2)要先进入圈,开始绕起来,在慢指针(配速1)第一次进入环时相遇
Nsum问题
Nsum问题要注意问题的细微变化
强调:索引和结果集均不重复,去重是关键
15.三数之和
三叔之和定一动二(后续四数之和定二动二)
先排序
循环内部:
【1. 特判
2. 去重 】定指针部分
3. 指针逼近(去重)
18. 四数之和
定二动二
先排序
【1. 特判
2. 去重 】
【1. 特判
2. 去重 】 两次(定二)
3. 指针逼近(去重)

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值