这部分对已经用双指针法做过的算法题目进行总结
一.移除元素
数据结构与数据结构与算法学习day02-数组二分法查找、移除元素-CSDN博客
这道题的双指针主要是快指针和慢指针。
- 快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
- 慢指针:指向更新 新数组下标的位置
快指针会有两种情况:
1.找到目标替换元素,快指针跳过该元素继续遍历
2.没找到目标替换元素,则快指针把内容覆盖到慢指针所指的位置。
二.反转字符串
这道题的双指针主要是头指针和尾指针。用swap函数对两个指针指的内容进行替换。
三.替换数字
这道题的双指针主要是两个尾指针,一个尾指针指向原字符串尾部位置,一个尾指针指向加长后的字符串尾部位置。用两个尾指针,对原字符串进行从末端开始数字替换。
四.翻转字符串里的单词
这里双指针用在了两个函数:
1.翻转函数,用法与(二、反转字符串)一样
2.去除空格函数,用法与(三.替换数字)一样
五.翻转链表
数据结构与算法学习day06-设计链表、翻转链表-CSDN博客
这里的双指针有前指针和后指针。根据链表的特性,依次把后指针位置的next指向前指针的位置即可完成链表翻转。
六.删除链表的倒数第N个节点
数据结构与算法学习day07-删除链表的倒数第N个节点、链表相交-CSDN博客
这里的双指针是为了找出倒数第n个节点的前一个位置。先加一个虚拟头结点(因为要删除元素)前后指针均指向虚拟头结点。后指针走n+1步,然后前后同时移动,直到后指针指向null,则前指针到倒数第n个节点的前一个位置。具体数学推理看文章。
七.链表相交
数据结构与算法学习day07-删除链表的倒数第N个节点、链表相交-CSDN博客
这道题的双指针法是为了找到两个链表相同指针。
八.环形链表||
这道题的双指针法用在两个方面:
1.找链表的环
2.找链表的入口位置
具体看上面原文
九.三数之和
数据结构与算法学习day11-哈希表-赎金信、三数之和、四数之和-CSDN博客