算法与数据结构(最小栈)
- 互联网
- 2025-09-03 16:45:01

题目 思路
为了返回栈中的最小元素,我们需要额外维护一个辅助栈 min_stack,它的作用是记录当前栈中的最小值。
min_stack的作用:
min_stack的栈顶元素始终是当前栈 st 中的最小值。
每当st中压入一个新元素时,如果这个元素小于等于 min_stack 的栈顶元素,就将它也压入 min_stack。
每当st中弹出一个元素时,如果这个元素等于 min_stack 的栈顶元素,就将 min_stack 的栈顶元素也会弹出。
代码 class MinStack { public: /** initialize your data structure here. */ stack<int> st; stack<int> min_stack; MinStack() {} void push(int x) { st.push(x); if(min_stack.empty() || min_stack.top() >= x) min_stack.push(x); } void pop() { if(min_stack.top() == st.top()) min_stack.pop(); st.pop(); } int top() { return st.top(); } int getMin() { return min_stack.top(); } };算法与数据结构(最小栈)由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“算法与数据结构(最小栈)”
上一篇
STM32低功耗模式
下一篇
Python学习心得常见的异常