[LeetCode] 155. Min Stack

来源:互联网 发布:mac host 生效 编辑:程序博客网 时间:2024/06/11 06:03

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.
Example:

MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin();   --> Returns -3.minStack.pop();minStack.top();      --> Returns 0.minStack.getMin();   --> Returns -2.
class MinStack {public:    /** initialize your data structure here. */    MinStack() {    }    void push(int x) {        MinElement = stk.empty() ? x : min(stk.top().second, x);        stk.push({x, MinElement});    }    void pop() {        stk.pop();    }    int top() {        return stk.top().first;    }    int getMin() {        return stk.top().second;    }private:    stack<pair<int, int>> stk;    int MinElement;};

这里写图片描述这里写图片描述

原创粉丝点击