双指针:反向扫描和同向扫描

双指针的应用场景

双指针(又称为尺取法)是算法竞赛中常用的一个优化技巧,用来解决序列的区间问题。

我们一般用 i 和 j 分别扫描区间,i 和 j 有如下两种扫描方向

反向扫描:i 和 j 方向相反,i 从头到尾,j 从尾到头,在中间相会
同向扫描:i 和 j 方向相同,都从头到尾,速度不同,让 j 跑在 i 前面

把同向扫描的 i, j 指针称为‘快慢指针’,快慢指针可以用来解决链表是否有环,数组去重等,并且快慢指针在序列上产生了一个大小可变的滑动窗口,可以用解决滑动窗口相关的问题,比如寻找区间

把反向扫描的 i, j 指针称为‘左右指针’

反向扫描

判断是否为回文字符串
题目描述:
双指针:反向扫描和同向扫描_第1张图片
题目来源:BM88(牛客网)

public class Solution 

你可能感兴趣的:(图解面试算法,leetcode,算法,职场和发展)