Two Pointers 双指针

输入是数组或者字符串,不算是标准算法的类型,但是是一类问题的通用解法。

同向双指针

两个指针同向运动,用两个变量,一个变量记录当写指针的位置(fast index), 一个变量记录隔板位置(slow index).

  • 性质1. slow左边是处理好的元素,当先指针fast右边是未处理的元素,两个指针之间的区域是无用的元素/每次只要分析当前元素性质是否要加入或者移动slow就可以!
  • 性质2. 用快慢指针,同向而行,处理完毕之后,return的结果中,每个integer/char的相对位置不变!

相向双指针

两个指针相向而行,一个左指针,一个右指针

  • 性质1. left左边是处理好的元素,right右边也是处理好的元素,两个隔板中间是未处理区域
  • 性质2. 处理完毕后,return的结果中,每个integer/char的相对位置可能发生变化!!!

Two Sum

• 几乎所有 Two Sum 变种

Partition

• Quick Select • 分成两个部分 • 分成三个部分 • 一些你没听过的(但是面试会考的)排序算法

results matching ""

    No results matching ""