class MaxQueue {
private:
queue<int> que;
deque<int> maxQue;
public:
MaxQueue() {
}
int max_value() {
if (maxQue.empty()) return -1;
return maxQue.front();
}
void push_back(int value) {
while (!maxQue.empty() && maxQue.back() < value) {
maxQue.pop_back();
}
maxQue.push_back(value);
que.push(value);
}
int pop_front() {
if (que.empty()) return -1;
int res = que.front();
if (res == maxQue.front()) {
maxQue.pop_front();
}
que.pop();
return res;
}
};
Leetcode 剑指Offer 59 - II.队列的最大值
最新推荐文章于 2022-07-25 12:58:40 发布