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;
}
};
LeetCode剑指 Offer 59 - II. 队列的最大值
最新推荐文章于 2022-07-25 12:58:40 发布