LeetCode[155]-Min Stack

来源:互联网 发布:虚拟主机 域名 编辑:程序博客网 时间:2024/06/04 17:41

Link: https://leetcode.com/problems/min-stack/

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
getMin() – Retrieve the minimum element in the stack.


思路:需要两个栈,一个用来作为一般的栈,另一个用来存放进栈到某一位置的当前站内最小元素,代码如下:

Code(c++):

class MinStack {public:    std::stack<int> stk;    std::stack<int> min;    void push(int x) {        stk.push(x);        if(min.empty() || (!min.empty() && x <= min.top())){            min.push(x);        }    }    void pop() {        if(!stk.empty()){            if(stk.top() == min.top())min.pop();            stk.pop();        }    }    int top() {        if(!stk.empty())            return stk.top();    }    int getMin() {        if(!stk.empty()) return min.top();    }};
0 0
原创粉丝点击