LeetCode refers to Offer 59-II. The maximum value of the queue

class MaxQueue {
    
    
public:
    deque<int> dq;
    queue<int> q;

    MaxQueue() {
    
    

    }

    int max_value() {
    
    
        if (dq.empty())
        {
    
    
            return -1;
        }
        else
        {
    
    
            return dq.front();
        }
    }

    void push_back(int value) {
    
    
        q.push(value);
        while (!dq.empty() && dq.back() < value)
        {
    
    
            dq.pop_back();
        }
        dq.push_back(value);
    }

    int pop_front() {
    
    
        if (q.empty())
        {
    
    
            return -1;
        }
        int ans = q.front();
        if (ans == dq.front())
        {
    
    
            dq.pop_front();
        }
        q.pop();
        return ans;
    }
};

Guess you like

Origin blog.csdn.net/qq_32862515/article/details/109293025