服务器域名,网站优化排名优化,网站内容优化,网站开发字体过大定义栈的数据结构#xff0c;请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中#xff0c;调用min、push及pop的时间复杂度都是O(1)。
代码#xff1a;
package offer;
import java.util.Stack; class MinInStack { StackInteger stack new St…定义栈的数据结构请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中调用min、push及pop的时间复杂度都是O(1)。
代码
package offer;
import java.util.Stack; class MinInStack { StackInteger stack new StackInteger(); StackInteger minstack new StackInteger(); MinInStack() { this.stack new StackInteger(); this.minstack new StackInteger(); } boolean IsEmpty() { return this.stack.empty(); } int Top() { return this.stack.peek(); } int min() { return this.minstack.peek(); } void Push(int val) { this.stack.add(val); if(this.minstack.empty()) { this.minstack.add(val); } else if(valthis.minstack.peek()) { this.minstack.add(val); } else { this.minstack.add(this.minstack.peek()); } } int Pop() { int x this.stack.pop(); if(!this.minstack.empty()) { this.minstack.pop(); } return x; } } public class ti30 { public static void main(String[] args) { MinInStack stack new MinInStack(); stack.Push(3); System.out.println(stack.min()); stack.Push(4); System.out.println(stack.min()); stack.Push(2); System.out.println(stack.min()); stack.Push(1); System.out.println(stack.min()); stack.Pop(); System.out.println(stack.min()); stack.Pop(); System.out.println(stack.min()); stack.Push(0); System.out.println(stack.min()); } }