zoukankan      html  css  js  c++  java
  • [算法]双指针用法

    快慢指针

    概念

    • 快指针的步长比慢指针的步长多
    • 快指针慢指针步长一致,快指针先走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++;
        } 
    
  • 相关阅读:
    053(二十五)
    053(二十四)
    053(二十三)
    053(二十二)
    053(二十一)
    053(二十)
    053(十九)
    053(十八)
    053(十七)
    单例设计模式
  • 原文地址:https://www.cnblogs.com/wendyy/p/9316807.html
Copyright © 2011-2022 走看看