算法技巧-双指针

双指针是指一个快指针一个慢指针。

双指针可以原地去除链表中的重复元素:题号,明天写上。

26,27,283,83。字符串原地去重,思路:定义快慢指针,如果(快指针不等于慢指针),慢指针+1.value等于快指针所在的值,最后记录慢指针所在的位置就是结束的位置。

应用:

1.141判断链表有没有环,思想:如果有环跑得快的会追上慢的(快指针前进两步),如果没有,跑的快的会返回null。

2.142如果有环,返回环的位置。思想:当快慢指针相遇时,让其中任一个指针指向头节点,然后让它俩以相同速度前进,再次相遇时所在的节点位置就是环开始的位置。

3.876返回链表的中心位置,让快指针前进两步,慢指针前进一步。最终慢指针会在中心的位置。

4.删除链表倒数第n个元素

双指针技巧直接秒杀五道算法题,这个链接的东西还得继续看

5.5返回最长的回文子串,思路:双指针标记中心坐标,分别往两边移动,直到两个字符不相等,遍历中心坐标,返回最长的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值