实现一个特殊的栈,要求push,poll , getMin方法时间复杂度都是O(N)
Posted moris5013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个特殊的栈,要求push,poll , getMin方法时间复杂度都是O(N)相关的知识,希望对你有一定的参考价值。
借助两个栈来实现
public class GetMinStack private Stack<Integer> stackData; private Stack<Integer> stackMin; public GetMinStack() this.stackData = new Stack<Integer>(); this.stackMin = new Stack<Integer>(); public void push(int obj) if (stackMin.isEmpty()) stackMin.push(obj); else stackMin.push(obj < getmin() ? obj : getmin()); stackData.push(obj); public int getmin() if (stackMin.isEmpty()) throw new RuntimeException("Your stack is empty."); return stackMin.peek(); public int pop() if (this.stackData.isEmpty()) throw new RuntimeException("Your stack is empty."); this.stackMin.pop(); return this.stackData.pop();
以上是关于实现一个特殊的栈,要求push,poll , getMin方法时间复杂度都是O(N)的主要内容,如果未能解决你的问题,请参考以下文章