
【解题思路】
使用两个队列来实现栈的操作:压栈、弹出、求栈中元素的最小值。
新建一个队列:
Deque<Integer> que1;
Deque<Integer> que2;
que1 = new ArrayDeque<>();
que2 = new ArrayDeque<>();
class MinStack {
Deque<Integer> que1;
Deque<Integer> que2;
int min;
/** initialize your data structure here. */
public MinStack() {
que1 = new ArrayDeque<>();
que2 = new ArrayDeque<>();
}
public void push(int x) {
if(que1.size() == 0 || x < min)
{
min = x;
}
que1.offer(x);
}
public void pop() {
while(que1.size()> 1)
{
que2.offer(que1.poll());
}
if(min == que1.peek())
{
min = 2147483647;

本文介绍了一种利用两个队列实现栈的基本操作(压栈、弹栈、获取栈顶元素)及求栈中元素最小值的方法。通过维护一个辅助队列并在每次弹栈时更新最小值,确保了效率。
最低0.47元/天 解锁文章
278

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



