快慢指针
概念
- 快指针的步长比慢指针的步长多
- 快指针慢指针步长一致,快指针先走n步
- 双指针在有序数组中应用用以范围逼近
应用
- 链表中点
faster = faster.next.next, slower = slower.next.
- 链表倒数第n个
for(i=0;i<n;i++)
{
p1=p1->next;
}
while(p1->next)
{
p1=p1->next;
p2=p2->next;
}
- 查找和为n的数组元素
while(j<k)
{
if(nums[j]+nums[k]==target)
{
vector<int> temp = { nums[i],nums[j],nums[k]};
res.insert(temp);
j++,k--;
}
if(nums[j]+nums[k]>target)
k--;
if(nums[j]+nums[k]<target)
j++;
}