leetcode_MinStack_题解

来源:互联网 发布:征途最高数据 编辑:程序博客网 时间:2024/05/22 12:16
#include<iostream>#include<stack>using namespace std;class MinStack {public:    void push(int x) {        St.push(x);        if(Min.size()<=0||x<=Min.top())            Min.push(x);    }    void pop() {if(!St.empty()){if(!Min.empty()&&St.top() == Min.top())Min.pop();            St.pop();}    }    int top() {if(!St.empty()) return St.top();    }    int getMin() {if(!Min.empty())return Min.top();    }private:    stack<int> St,Min; };int main(){MinStack tg;tg.push(-2);tg.push(0);tg.push(-1);cout<<tg.getMin();tg.top();tg.pop();cout<<tg.getMin();system("pause");}
注释:empty(),push(),pop(),top()等等
联想用双栈实现队列的插入,和出队列,反之一样去实现。

0 0
原创粉丝点击