随笔 - 165,  文章 - 0,  评论 - 4,  阅读 - 18023

题目:

class MinStack {
public:
    stack<int> st1;           //维护原栈
    stack<int> st2;           //维护最小值的栈
    /** initialize your data structure here. */
    MinStack() {
        
    }
    
    void push(int x) {
        st1.push(x);
        if(st2.empty()||x<st2.top()){
            st2.push(x);
        }else st2.push(st2.top());       //如果插入元素大于st2的栈顶,那么再插入一个栈顶元素:1.确保st1和st2能同步pop  2.确保栈顶位置始终为最小值
    }
    
    void pop() {   
        st1.pop();
        st2.pop();              //要考虑有可能是最小元素被pop了
    }
    
    int top() {
        return st1.top();
    }
    
    int min() {
        return st2.top();
    }
};
posted on   孜孜不倦fly  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示