我的解题:
1.我想到的是用queue,求最大值时,遍历队列
class MaxQueue {
public:
queue<int> q;
MaxQueue() {
}
int max_value() {
if(q.empty()) return -1;
int a=0;
for(int i=0;i<q.size();i++){
if(q.front()>a) a=q.front();
q.push(q.front());
q.pop();
}
return a;
}
void push_back(int value) {
q.push(value);
}
int pop_front() {
if(q.empty()) return -1;
int a=q.front();
q.pop();
return a;
}
};
2.大多数运行较快的都是用的deque,多亏这道题,我也学习一下deque