欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 栈-最小栈

栈-最小栈

2025/3/31 16:37:28 来源:https://blog.csdn.net/qq_46103963/article/details/146569444  浏览:    关键词:栈-最小栈

155.最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack:MinStack() 初始化堆栈对象。
void push(int val) 将元素val推入堆栈。
void pop() 删除堆栈顶部的元素。
int top() 获取堆栈顶部的元素。
int getMin() 获取堆栈中的最小元素。

思路:使用双端队列来实现,并且使用一个minStack进行维护最小值,每次push一次,minStack维护一次最小值,pop一次,同样的minStack也pop一次,xStack和minStack中元素数量一致、

class MinStack {//使用双端队列定义栈Deque<Integer> xStack;Deque<Integer> minStack;public MinStack() {xStack = new LinkedList<>();minStack = new LinkedList<>();//初始化minStack中的值为最大值minStack.push(Integer.MAX_VALUE);}public void push(int val) {xStack.push(val);//使用minStack维护最小值minStack.push(Math.min(val, minStack.peek()));}public void pop() {xStack.pop();//退出一次,维护minStack中的值minStack.pop();}public int top() {return xStack.peek();}public int getMin() {return minStack.peek();}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(val);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词