返回首页

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