【双指针】142. 环形链表 II,15. 三数之和,232. 用栈实现队列

142. 环形链表 II

题目链接:https://programmercarl.com/0142.%E7%8E%AF%E5%BD%A2%E9%93%BE%E8%A1%A8II.html#%E6%80%9D%E8%B7%AF

  1. 是否有环:快走2,慢走1;
  2. 环的入口:相遇位置和头节点处分别走1相遇的位置。
  3. 注意走两步也要判断next是否为null:while (fast != null && fast.next != null)

15. 三数之和

题目链接:https://programmercarl.com/0015.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.html#%E6%80%9D%E8%B7%AF

  1. 思路:先排序,然后双指针遍历b和c。
  2. 注意去重时分为两部分,一个是a,一个是b+c。
  3. 去重a时,要注意是与前一个元素比较(因为遍历的bc是在a后面的),否则会丢结果。
  4. 去重b和c时,要注意在某个结果出来之后,跳过与b、c相同的值。
  5. 注意每次++或–时,判断条件是否需要left<right
  6. 语法:
    Arrays.sort(nums);
    List<List> res=new ArrayList<>();
    result.add(Arrays.asList(nums[i], nums[left], nums[right]));

232. 用栈实现队列

题目链接:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E7%89%88%E6%9C%AC

  1. 两个栈互相倒,注意pop和push操作时两个栈的同步。
  2. 语法:
    Stack stackIn = new Stack<>();
    isEmpty()、pop()、push()、peek()
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值