单调栈与单调队列 高频追问 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: 凹槽高度由左右边界决定,弹栈可逐段结算积水。