1.尺取法
尺取法,也称双指针(two_points),主要目的为减少复杂度,可以让的时间复杂度降为,也就是将双重循环变成了一重循环;
(1).反向扫描
反向扫描就是两个指针从两端开始遍历,直到相遇;
反向扫描在判断回文串时十分高效,只要运行次;
(2).同向扫描
[1].同向扫描的写法
同向扫描就是两个指针从同一个方向开始遍历,但一个快,一个慢;
同向扫描可以运用在滑动窗口的题目里;
[2].数组去重
虽然哈希可以也可以用于数组去重,但哈希的空间复杂度是十分大的;
而同向扫描可以以的空间复杂度来去重;
最简单的就是先将数组排序,再依次遍历,每遇到一个新的数字,就将它记录在数组的位置,同时(一开始为1),这样就是不重复的数组了;
[3].多指针
有时候会出现双指针不够用的情况,这时,就需要更多的指针了,例如三指针,就是三个指针像双指针一样运行,由于区别不大,这里不过多赘述;
2.尺取法的应用
尺取法一般用于求区间最值的问题上,有时也可以用于判断链表上是否有环;