跳到正文
前端知识库
算法

单调栈与单调队列 高频追问 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: 凹槽高度由左右边界决定,弹栈可逐段结算积水。(深入阅读:单调栈:下一个更大元素