当前位置: 首页 > news >正文

重练算法(代码随想录版) day4 - 链表part2

**今日刷题量:4 **
当前刷题总量:25
Easy: 14
Mid: 10
Hard: 1

Day 4
思想方法
1.一定要学会画图,思路捋不清楚的时候画图去拆解每一步的操作,再尝试用一个或多个指针去模拟
2.快慢指针找链表相交点
3.找环问题,Floyd判圈算法(龟兔赛跑算法)
第一阶段:检测环
慢指针:每次前进一步
快指针:每次前进两步
如果链表有环,快慢指针必定会在环内某点相遇
如果快指针到达 nullptr,说明链表无环
第二阶段:寻找环入口
数学推导:

设头节点到环入口距离:a
环入口到相遇点距离:b
相遇点到环入口距离:c
慢指针路程:a + b
快指针路程:a + b + c + b = a + 2b + c
由于快指针速度是慢指针2倍:2(a + b) = a + 2b + c
化简得:a = c
结论:从头节点和相遇点同时出发,以相同速度前进,会在环入口相遇

时间复杂度:O(n)
最坏情况下需要遍历整个链表
空间复杂度:O(1),只使用了常数个指针

练习题目

    1. 两两交换链表中的节点(mid) :https://leetcode.cn/problems/swap-nodes-in-pairs/description/
  • 19.删除链表的倒数第N个节点 (mid) :https://leetcode.cn/problems/remove-nth-node-from-end-of-list/submissions/676731112/
  • 02.07. 链表相交(easy) :https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/
  • 142.环形链表II (mid):https://leetcode.cn/problems/linked-list-cycle-ii/
http://www.jsqmd.com/news/35311/

相关文章:

  • 实用指南:【第十七周】机器学习笔记06
  • 耄大厨——AI厨师智能体(3-程序调用)
  • flask: 保存异常时的错误信息和堆栈到日志
  • 2020:【例4.5】第几项
  • 深入解析:【深入浅出PyTorch】--6.2.PyTorch进阶训练技巧2
  • Django `models.Field` 所有常见安装参数的完整清单与说明表
  • Java Redis “Sentinel(哨兵)与集群”面试清单(含超通俗生活案例与深度理解) - 实践
  • 应用于ElasticSearch的C++ API——elasticlient - 教程
  • China Collegiate Programming Contest (CCPC) Jinan Site (The 3rd Universal Cup. Stage 17: Jinan) 题解
  • csp-j/s历险记
  • 深信服AC1700
  • 2025年FFS重膜包装机厂家综合实力排行榜TOP5
  • 2025年国内重袋包装机品牌推荐榜单
  • 164. 最大间距
  • 软考完结篇
  • 2025大厂高频软件测试面试真题(附答案)
  • visio绘制带公式图片作为latex插图
  • Jenkins Pipeline post指令详解 - 实践
  • SGLANG Docker容器化部署指南
  • 保研经验分享
  • Vibe Coding - 零成本使用claude code 、gpt-5、grok-code-fast-1氛围编程
  • MyBatis-Plus分页查询中distinct与order by组合的SQLServer兼容性问题解析 - 教程
  • 【React】useMemo 和 useEffect 的用法 - 实践
  • [LangChain] 15. 内存型向量库
  • 完整教程:从架构师视角看 RPC:分布式系统的灵魂纽带
  • 题解:qoj8047 DFS Order 4
  • Oracle数据库恢复检查脚本
  • 视野修炼-技术周刊第126期 | TypeScript #1
  • 详细介绍:FPGA 中的 AXI 总线介绍
  • 深入解析:眼控交互:ErgoLAB新一代人机交互方式