-
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() –
检索栈中的最小元素。
示例:
MinStack minStack = new MinStack(); minStack.push(-2);
minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3.
minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin();
–> 返回 -2.
class MinStack {
public:
/** initialize your data structure here. */
MinStack() {}
void push(int x)
{
stk.push(x);
if(temp.empty() || x < temp.top())
temp.push(x);
else if (x >= temp.top())
temp.push(temp.top());
}
void pop() {
stk.pop();
temp.pop();
}
int top() {
return stk.top();
}
int getMin() {
return temp.top();
}
private:
stack<int> stk;
stack<int> temp;
};
本文介绍了一种特殊的数据结构——最小栈,它不仅支持基本的栈操作如push、pop和top,还能在常数时间内检索到栈中的最小元素。通过实例展示了如何使用最小栈进行数据操作。
508

被折叠的 条评论
为什么被折叠?



