睡不著,起來寫道題
言歸正傳:
- 其實這道題很簡單,不過我之前騰訊的實習生面試的時候還遇到過這道題,所以還是可以做做,其實最主要的思路就是一點,創(chuàng)建一個新的棧min用來記錄在當前狀態(tài)下本來那個棧stk的最小值.最小值就是min棧的棧頂。
class MinStack {
public:
stack<int> stk;
stack<int> min;
void push(int x) {
stk.push(x);
if(min.empty() || x<=min.top())
{
min.push(x);
}
}
void pop() {
if(min.top() == stk.top())
{
min.pop();
}
stk.pop();
}
int top() {
return stk.top();
}
int getMin() {
return min.top();
}
};