LeetCode 155 Min Stack


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

Implement the MinStack class:

  • MinStack() initializes the stack object.
  • void push(int val) pushes the element val onto the stack.
  • void pop() removes the element on the top of the stack.
  • int top() gets the top element of the stack.
  • int getMin() retrieves the minimum element in the stack.

You must implement a solution with /(O(1)/) time complexity for each function.

Solution

用一个普通的 /(stack/) 来模拟,然后用一个数组 /(Min/) 来维护最小值。

点击查看代码
class MinStack {
private:
    stack<int> sk1;
    int Min[30003];
    int pt = 0;
    
public:
    MinStack() {
        
    }
    
    void push(int val) {
        sk1.push(val);
        if(pt==0)Min[pt] = val, pt++;
        else Min[pt] = min(val, Min[pt-1]),pt++;
    }
    
    void pop() {
        sk1.pop();pt--;
    }
    
    int top() {
        return sk1.top();
    }
    
    int getMin() {
        return Min[pt-1];
    }
};

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack* obj = new MinStack();
 * obj->push(val);
 * obj->pop();
 * int param_3 = obj->top();
 * int param_4 = obj->getMin();
 */

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/275978.html

(0)
上一篇 2022年7月22日
下一篇 2022年7月22日

相关推荐

发表回复

登录后才能评论