算法题解
LeetCode 42
困难
接雨水:单调栈怎样把凹槽面积一层层算出来
接雨水是单调栈的进阶题,重点不只是会写代码,而是理解为什么弹栈时刚好能确定一个凹槽的面积。
#algorithm
#monotonic-stack
#array
输入关键词开始搜索,支持单字。
查看全部结果学习记录
完整的 Go 学习文章、算法题解和问题复盘。
快速筛选
接雨水是单调栈的进阶题,重点不只是会写代码,而是理解为什么弹栈时刚好能确定一个凹槽的面积。
这题很适合训练“二分不是只找某个值,而是用条件判断缩小区间”的思维方式。
这道题是滑动窗口进阶版,关键不是单纯扩缩窗口,而是维护“覆盖要求是否满足”和“什么时候可以继续收缩”。
很多构建差异问题不是代码不同,而是模块缓存、依赖来源和环境不一致。理解缓存和可复现构建后,排查会快很多。
一个仓库里放多个 Go 模块不是不行,但如果边界、职责和开发方式没提前想清楚,很快就会变得难维护。
私有模块问题经常同时涉及 Git 凭据、代理、sumdb 和模块路径。把排查顺序理顺后,很多问题会变得简单。
很多 Go 模块问题不是不会改依赖,而是根本没看清当前项目到底依赖了谁。go list -m 是最直接的观察入口。
从基本结构、遍历方式到典型适用场景,系统梳理 container/ring.Ring 这个在 Go 标准库里不算高频但很有代表性的循环链表实现。
从缓冲层的作用、常用方法到使用边界,系统梳理 bufio.Reader 在 Go 标准库里的定位和实战写法。