单调栈与单调队列 高频追问 Q&A
A: 每个元素最多入栈一次、出栈一次。(深入阅读:单调栈:下一个更大元素)
约 2 分钟
单调栈与单调队列 高频追问 Q&A
1. Q: 单调栈为什么是 O(n)?
A: 每个元素最多入栈一次、出栈一次。(深入阅读:单调栈:下一个更大元素)
2. Q: 什么时候用单调栈?
A: 需要找“下一个更大/更小元素”或最近更值问题。(深入阅读:单调栈与单调队列基础知识速览、单调栈:下一个更大元素)
3. Q: 单调队列和堆谁更优?
A: 窗口最值场景单调队列 O(n) 更优,堆通常 O(n log k)。(深入阅读:单调队列:滑动窗口最大值、堆与优先队列基础知识速览)
4. Q: 队列里放值还是下标?
A: 一般放下标,便于判断是否滑出窗口。(深入阅读:单调队列:滑动窗口最大值)
5. Q: 常见 bug?
A: 维护单调性方向写反、窗口过期判断时机错误。(深入阅读:单调栈与单调队列基础知识速览、单调队列:滑动窗口最大值)
6. Q: 接雨水为什么可用单调栈?
A: 凹槽高度由左右边界决定,弹栈可逐段结算积水。(深入阅读:单调栈:下一个更大元素)