双指针算法
双指针算法的思路
一类是两个指针指向两个序列,用来维护两个序列的某种顺序,在归并排序中,区间合并使用的算法即是双指针算法
另一类是两个指针指向同一个序列,在快速排序中的划分的过程就是双指针算法
朴素算法(暴力):
1 | for (int i = 0; i < n; i++ ) |
双指针:
1 | for (int i = 0, j = 0; i < n; i ++ ) |
上面就是双指针算法的具体逻辑
在解题时可以将时间复杂度O(n^2)的问题优化到O(n)
入手时可以先从暴力角度分析,找出暴力做法后进行优化,寻找两个数组的单调性