数据结构与算法 - 双指针法的应用
应用1:寻找和为target的两个数
167. 两数之和 II - 输入有序数组
题目链接:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/
应用2:判断链表是否有环
142. 环形链表 II
287. 寻找重复数
题目链接:https://leetcode-cn.com/problems/find-the-duplicate-number/
应用3:荷兰国旗问题
75. 颜色分类
应用4:三数之和
15. 三数之和
16. 最接近的三数之和
滑动窗口
「滑动窗口」是一类使用「双指针」技巧,通过两个变量在数组上同向交替移动解决问题的算法。这一类问题的思考路径通常是:先思考暴力解法,分析暴力解法的缺点(一般而言暴力解法的缺点是重复计算),然后 结合问题的特点,使用「双指针」技巧对暴力解法进行剪枝。因此,思考算法设计的合理性是更关键的,这一点适用于所有算法问题。
- 「力扣」第 1004 题:最大连续 1 的个数 III;
- 「力扣」第 1208 题:尽可能使字符串相等;
- 「力扣」第 1493 题:删掉一个元素以后全为 1 的最长子数组。
- 「力扣」第 3 题:无重复字符的最长子串;
- 「力扣」第 209 题:长度最小的子数组;
- 「力扣」第 76 题:最小覆盖子串;
- 「力扣」第 438 题:找到字符串中所有字母异位词;
- 「力扣」第 567 题:字符串的排列。