没啥意思 不要想复杂了 就是暴力
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();
}
};
手机扫一扫
移动阅读更方便
你可能感兴趣的文章