实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

你实现的栈将支持pushpopmin 操作,所有操作要求都在O(1)时间内完成。

/*
    两个栈一个维护最小值,一个维护值
*/
class MinStack {
public:
    MinStack() {
        // do intialization if necessary
    }

    /*
     * @param number: An integer
     * @return: nothing
     */
    
    void push(int number) {
        // write your code here
        if (min_num.empty() || number <= min_num.top())
            min_num.push(number);
        ans.push(number);    
    }

    /*
     * @return: An integer
     */
    int pop() {
        // write your code here
        int pos = ans.top();
        ans.pop();
        if (min_num.top() == pos)
            min_num.pop();
        return pos;
    }

    /*
     * @return: An integer
     */
    int min() {
        // write your code here
        if (!min_num.empty())
            return min_num.top();
    }
    
    stack <int> ans;
    stack <int> min_num;
};

 

相关文章:

  • 2021-10-31
  • 2022-01-23
  • 2021-11-15
  • 2021-04-27
  • 2021-06-11
  • 2022-12-23
  • 2022-01-28
  • 2021-05-18
猜你喜欢
  • 2021-12-30
  • 2022-02-17
  • 2021-11-21
  • 2021-09-29
  • 2021-09-11
  • 2021-08-14
  • 2021-06-11
相关资源
相似解决方案