建网站流程的费用,自己做的网站怎么设置信息必填,网站建设的客户在哪里,化妆品商城网站建设开发策划方案题目#xff1a;
设计一个支持 push #xff0c;pop #xff0c;top 操作#xff0c;并能在常数时间内检索到最小元素的栈。
实现 MinStack 类:
MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获…题目
设计一个支持 push pop top 操作并能在常数时间内检索到最小元素的栈。
实现 MinStack 类:
MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。
方法用一个变量保存最小值当有更小的值来的时候我们只需要把之前的最小值入栈当前更小的值再入栈即可。当这个最小值要出栈的时候下一个值便是之前的最小值了。
代码
class MinStack {int min Integer.MAX_VALUE;StackInteger stack;public MinStack() {stack new StackInteger();}public void push(int val) {// 当前值更小if (val min) {// 将之前的最小值保存stack.push(min);// 更新最小值min val;}stack.push(val);}public void pop() {// 如果弹出的值是最小值那么将下一个元素更新为最小值if (stack.pop() min) {min stack.pop(); // 关键,连退两个}}public int top() {return stack.peek();}public int getMin() {return min;}
}/*** 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();*/