主题
每日刷题总结 · 2026-08-10
今日题单
| 题 | 主标签 | 复盘 |
|---|---|---|
| 146. LRU 缓存 | 设计 · 哈希 + 双向链表 | 方向对;挪头/淘汰/更新多处断链,未全过 |
| 148. 排序链表 | 链表 · 排序 / 归并 | 数组 sort 能 AC;缺归并模板 |
代码目录(不当博客看):146-LRU缓存/、148-排序链表/。
今天练到什么
- LRU 语义:
get/put都要把键标成「最近」;满了删「最久」。手写双向链表分支极易漏修pre/next。 - 设计题落地:同一套语义,JS 可用
Map插入序快速实现;面试仍应能口述哈希 + 双向链表。 - 链表排序:数组抽出再排是正确捷径;进阶是快慢拆半 + 合并有序链(教程 13 清单题)。
和教程线对齐:148 直接对应 13 · 链表进阶;146 偏设计,哈希底座见 09,指针功夫接 12。
总体评分
| 维度 | 分(1~5) | 说明 |
|---|---|---|
| 技术正确性 | 2.5 | 148 过全;146 自评只能过一部分,关键路径有 bug |
| 复杂度意识 | 3 | 148 量级 OK 但非最优空间;146 目标 O(1) 未做成 |
| 代码严谨度 | 2 | 链表拆挂缺统一封装;put 更新 head 未写值、capacity=1 淘汰后直接 return |
| 综合 | 2.5 / 5 | 难题方向摸到了;下一步先用短模板把 146 做对,148 补归并 |
一句话总评:148 能过但偏捷径;146 需要推倒重来成「Map 版或 dummy 双向链表版」,别在断链分支里硬修。
明天建议
目标:2~3 题,优先把今天缺口默写实。
- 必做:不看稿重写 146——优先
Map有序版 交过;有余力再写 dummy 双向链表版对照复盘。 - 必做:默写 148 的 归并版(快慢拆 +
merge),对照今日数组版。 - 巩固:21. 合并两个有序链表(148 的子过程)。
读教程可选:重读 13 合并与练习清单中 148 一行即可。
