主题
每日刷题总结 · 2026-08-25
今日题单
| 题 | 主标签 | 复盘 |
|---|---|---|
| 736. 划分字母区间 | 贪心 · 哈希 | 最后下标预处理对,但 Set + 多层循环绕远;宜改一遍扫 end |
代码目录(不当博客看):736-划分字母区间/。
今天练到什么
- 贪心 + 哈希预处理:每个字符只属一段 ⇔ 段的右边界必须包住段内所有字符的「最后出现位置」。
- 区间右扩模板:
end = max(end, last[s[i]]),扫到i === end结算——与 55. 跳跃游戏 的「最远可达」是同一手势。 - 实现代价:逻辑正确但结构复杂时,LeetCode 用时/内存会明显垫底;Medium 题要习惯「能讲清 + 能默写 O(n) 版」。
和教程线对齐:Map 存下标见 09;字符串线性扫描见 23。贪心区间题在教程里分散在栈/二分延伸阅读,今天相当于自补区间贪心入口。
总体评分
| 维度 | 分(1~5) | 说明 |
|---|---|---|
| 技术正确性 | 4 | 标准测例正确;核心「最后下标 + 扩边界」没跑偏 |
| 复杂度意识 | 2.5 | 能 AC 但未主动压到 O(n) 一遍扫;提交性能很差 |
| 代码严谨度 | 2.5 | 变量多、嵌套深,可读性与可维护性弱 |
| 综合 | 3 / 5 | 直觉到位,缺「标准贪心模板」的肌肉记忆 |
一句话总评:736 把题意想明白了,下一步是把 end 一遍扫 写成条件反射,别再用 Set 模拟扩段。
明天建议
目标:2~3 题,区间贪心 + 对照跳跃。
- 必默写:736. 划分字母区间 —— 标准
lastMap + 单循环end,5 分钟内写完;对比今天代码口述「删掉了什么」。 - 同构延伸:55. 跳跃游戏 / 45. 跳跃游戏 II(若 8-24 代码尚未复盘,可先 AC 再对照 736 的
end手势)。 - 区间贪心(有余力):435. 无重叠区间 —— 按右端点排序贪心,与「尽量多切段」形成对比。
读教程可选:09 Map 段 10 分钟,不必新开专题。
