• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2025-03-24 22:08 Aet 隐藏边栏 |   抢沙发  6 
文章评分 1 次,平均分 5.0

LCR 023 相交链表

Question

  1. 160题一样

Ans1

Ans2

3263 将双链表转为数组1

Question

Ans

  1. 效率一般

3063 链表频率

Question

Ans1

  1. 我的版本,使用map来完成,效率一般

Ans2

  1. 优化ans1,明显缩短了执行时间

3062 链表游戏的获胜者

Question

Ans

1474 删除链表M个节点之后的N个节点

Question

Ans1

  1. 我的方法,循环处理,达到效果

Ans2

  1. ans1的代码优化版本,逻辑是一样的

1290 二进制链表转整数

Question

Ans1

  1. 先反转链表,然后从低位开始不断计算

Ans2

  1. 构建res的二进制位,每次循环先左移一位,确保末尾是0,让这个0去和下一位去或运算

Ans3

  1. 原理和ans2一样

876 链表的中间节点

Question

Ans1

  1. 我的方法,快慢指针

Ans2

  1. vector去保存head,只要head有指向一个节点,就不断把下一个节点添加到vector里面

Ans3

  1. 单指针遍历出链表长度,计算出中间节点
  2. 似乎性能不如快慢指针

706 设计哈希映射

Question

Ans1

  1. 性能不好

Ans2

  1. 好了一些

705 设计哈希集合

Question

Ans1

  1. 通过了,但是性能很差

Ans2

2255 统计是给定字符串前缀的字符串数目

Question

Ans1

21 合并两个有序链表

Question

Ans

83 删除排序链表中的重复元素

Question

Ans1

Ans2

141 环形链表

Question

Ans1

  1. 快慢指针

Ans2

  1. 用了std::unordered_set统计结点出现的次数

160 相交链表

Question

Ans1

  1. 效率较差

Ans2

  1. 使用std::unordered_set将每个结点存一下
  2. 优化效果明显

Ans3

  1. 最优的方法

  1. 思路如下:
  2. 设「第一个公共节点」为 node ,「链表 headA」的节点数量为 a ,「链表 headB」的节点数量为 b ,「两链表的公共尾部」的节点数量为 c ,则有:
    1. 头节点 headAnode 前,共有 a−c 个节点
    2. 头节点 headBnode 前,共有 b−c 个节点
  3. 考虑构建两个节点指针 A , B 分别指向两链表头节点 headA , headB ,做如下操作:
    1. 指针 A 先遍历完链表 headA ,再开始遍历链表 headB ,当走到 node 时,共走步数为:
    2. a+(b-c)
    3. 指针 B 先遍历完链表 headB ,再开始遍历链表 headA ,当走到 node 时,共走步数为:
    4. b+(a-c)
  4. 按上面的思路,两个指针遍历到公共节点时,AB重合,且走的步数相同
    1. 公式上表现为:a+(b-c)=b+(a-c)
    2. 则有两种情况:
    3. 情况一:假如两个链表有公共尾部,也就是c大于0的情况,指针AB会同时指向公共节点node
    4. 情况二:假如两个链表无公共尾部,也即是c等于0的情况,指针AB会同时指向nullptr

203 移除链表元素

Question

Ans1

Ans2

  1. 递归的方式

  1. 把任务交给下一个节点去处理,认为下一个节点总是返回正确的结果
  2. 拿到结果后,再判断一下自己是不是目标
    1. 如果自己是目标,那就返回正确的结果,不返回自己,因为有自己就不正确了
    2. 如果自己不是目标,那就把结果挂在自己后面,然后返回自己,因为自己加上结果,才是正确的结果

Ans3

  1. 双指针

206 反转链表

Question

Ans1

Ans2

  1. 递归的方式

234 回文链表

Question

Ans

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2025-04-02
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享