第四天,快乐

两个想法,一个是构建一个stack另一个是利用标准库里的容器完成
自己构建有点小问题…等下解决下

利用stack容器`

class MinStack {
    
    
private:
    stack<int> data;
    stack<int> min;

public:
    /** initialize your data structure here. */
    MinStack()
    : data(stack<int>()), min(stack<int>())
    {
    
    
    }
    
    void push(int x) {
    
    
        data.push(x);
        if(min.empty() || x < min.top())
            min.push(x);
        else
            min.push(min.top());
    }
    
    void pop() {
    
    
        data.pop();
        min.pop();
    }
    
    int top() {
    
    
        return data.top();
    }
    
    int getMin() {
    
    
        return min.top();
    }
};

利用vector<int>

class MinStack {
    
    
public:
    /** initialize your data structure here. */
    MinStack() {
    
    
    }
    
    void push(int x) {
    
    
        vec.push_back(x);
    }
    
    void pop() {
    
    
        vec.pop_back();
    }
    
    int top() {
    
    
        return vec[vec.size() - 1];
    }
    
    int getMin() {
    
    
        int min = vec[0];
        for(int r = 1;r < vec.size();++r){
    
    
            if(min > vec[r]){
    
    
                min = vec[r];
            }
        }
        return min;
    }
	private:
    	vector<int> vec;
};

vector效率低,耗时长

猜你喜欢

转载自blog.csdn.net/AgaSS1225/article/details/112515711