题型

对于线性表类型的题目,已知该线性表具有某种顺序,我们需要对该线性表做某种规定的变换,或者找到该线性表中具有某种特殊性质的结点,我们就可以使用双指针来解决,其中某种规定的变换或者特殊性质的结点,这个规定和特殊性质决定着双指针的移动距离。

我们常见的双指针,比如快慢指针,头尾设立指针,二分查找等

关键词

有序线性表

算法步骤
  • 1.设立头尾指针

    头尾设置指针分别指向头尾,其他的一些双指针可能不是指向头尾,也可以都指向头部等

  • 2.头尾指针依据某种速率移动,循环

    这个移动速率,头尾指针不一定一样,移动速率依据要找结点的特性,或者线性表变换的特性来定的,比如说二分查找,那么首位指针的移动速率就是 mid 的值 > target 的时候,right 指针可以移动到 mid 指向的位置

  • 3.最后找到结点或者完成线性表的变换

    最后依据一个条件然循环出来,比如找到结点,或者头指针比尾指针小等条件