其他分享
首页 > 其他分享> > LeetCode 155 Min Stack

LeetCode 155 Min Stack

作者:互联网

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

Implement the MinStack class:

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();
 */

标签:155,val,pt,Min,int,top,Stack,LeetCode,stack
来源: https://www.cnblogs.com/xinyu04/p/16504222.html