一、前言
1、在做leetcode题目的过程中,相较于暴力搜索方法,双指针方法有助于快速解决问题,因此在leetcode常见题型的十八罗汉中,也占据着一席之地;
2、昨天在每日一题中做到一个类似题目,借此契机梳理下这个类型题目的典型应用场景,以便掌握其工作模式及特性,在之后的做题乃至工作中,将这些模式作为隐知识记忆;
3、本文的布局主要基于如下几块,分别是基本理论方法,然后是典型例题及解法,之后是方法的总结;
4、基本理论方法,首先是记录一些大牛的理解,然后再梳理一份自身的理解;典型例题及解法,则主要包括题目,分析,及代码实现,在分析方法中,会尽量通过数学语言启发式地描述分析过程;
5、最最关键一点,也是自己一直缺乏的,”纸上得来终觉浅,须知此事要躬行”;
二、理论
2.1 labuladong的看法[1]
1、分为两类 – 快慢指针,用于解决链表中的问题,如链表是否包含环;左右指针,解决数组或者字符串的问题,如二分搜索,符合值域左右边界的个数等;
2、左右指针,一般运用在数组中,实际是指两个索引值,一般初始化为left = 0,right = strlen(nums) - 1;
2.2
三、实践
3.1 适龄的朋友
参考文献
[1]《labuladong的算法小抄》