设计一个具有getMin()功能的栈
2017-11-02 16:48
399 查看
设计一个具有getMin()功能的栈:
1.push、pop、getMin()时间复杂度为O(1)
2.设计栈时可以使用现有的栈结构
1.push、pop、getMin()时间复杂度为O(1)
2.设计栈时可以使用现有的栈结构
/** * 设计一个具有getMin()功能的栈: * 1.pop,push,getMin()时间复杂度为O(1) * 2.设计的栈可以使用现有的栈结构 * @author Nemo * */ public class StackDemo { private Stack<Integer> stackData = new Stack<Integer>(); private Stack<Integer> stackMin = new Stack<Integer>(); public void push(Integer data){ if(data == null){ throw new IllegalArgumentException("Illegal argument"); } if(stackMin.isEmpty() || stackMin.peek() >=data){ this.stackMin.push(data); }else{ this.stackMin.push(stackMin.peek()); } this.stackData.push(data); } public Integer pop(){ if(stackData.isEmpty()){ throw new RuntimeException("stack is empty"); } this.stackMin.pop(); return this.stackData.pop(); } public Integer getMin(){ if(stackMin.isEmpty()){ throw new RuntimeException("stack is empty"); } return stackMin.peek(); }
相关文章推荐
- 程序员代码面试指南--设计一个具有getMin功能的栈
- 设计一个具有GetMin功能的栈
- 栈和队列之设计一个有getMin(得到最小值)功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个带有getMin功能的栈
- 设计一个有getMin功能的栈
- 1_1栈和队列_设计一个有Getmin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈-c++
- 设计一个有getMin功能的栈(C++版)
- 设计:设计一个分数类,具有一下的功能
- 设计一个有getMin功能的栈
- 实现一个具有GetMin功能的栈
- 设计一个有getMin功能的栈
- 栈和队列——设计一个有getMin功能的栈(二)
- 栈和队列---设计一个有getMin功能的栈
- (一)栈和队列--设计一个有getMin功能的栈 java实现
- 程序员面试指南之设计一个有GetMin功能的栈