剑指 Offer 栈与队列
阅读原文时间:2023年07月08日阅读:2

没啥意思 不要想复杂了 就是暴力

class CQueue {
public:
    CQueue() {

    }
    /*
    一个主栈 一个缓存栈
    来回导 得到队头

    copy后一端变空了
    */
    stack<int>stk,cache;
    void copy(stack<int>&a,stack<int>&b){
        while(a.size()){
            b.push(a.top());
            a.pop();
        }
    }
    void appendTail(int value) {
        stk.push(value);

    }

    int deleteHead() {
        if(stk.empty())return -1;
        copy(stk,cache);
        int res=cache.top();
        cache.pop();
        copy(cache,stk);
        return res;
    }
};


class MinStack {
public:
    /** initialize your data structure here. */
    MinStack() {

    }
    stack<int>stk,minn;

    void push(int x) {
        stk.push(x);
        if(minn.empty()||minn.top()>=x)minn.push(x);
    }

    void pop() {
        if(stk.top()==minn.top())minn.pop();
        stk.pop();
    }

    int top() {
        return stk.top();
    }

    int min() {
        return minn.top();
    }
};