(7)双指针
目录
一、双指针简介
双指针的含义是数组中的两个指针,也可以是数组的两个下标。使用双指针一般能实现O(n)的时间去解决问题。
双指针一般有两种用法。
1、在一个序列中一个指针从首端向后移动,另一个指针从尾端向前移动。
2、两个指针都从首端向后移动,但是移动速度不一样,一个移动的快,一个移动的慢(在这里是指 快指针在前“探路”,当符合某种条件时慢指针再向前移动)。
二、核心思想
i 指针在前“探路”,当符合某种条件 check(i,j) 时 j 指针再向前移动,直至序列遍历完。
朴素算法:
//暴力方式:O(n^2)
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
/* ...实现逻辑... */
}
}