栈和队列——设计一个有getMin功能的栈(一)
2017-08-29 13:20
579 查看
【题目】
设计一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作
【要求】
1、pop、push、getMin操作的时间复杂度都是O(1)
2、设计的栈类型可以使用现成的栈结构
【代码实现】
设计一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作
【要求】
1、pop、push、getMin操作的时间复杂度都是O(1)
2、设计的栈类型可以使用现成的栈结构
【代码实现】
//实现一个特殊的栈,在实现栈的基本功能的基础上在实现返回栈中最小元素的操作 import java.util.*; class MyStack1 { private Stack<Integer> stackData; private Stack<Integer> stackMin; public MyStack1(){ this.stackData = new Stack<Integer>(); this.stackMin = new Stack<Integer>(); } //入栈 public void push(int newNum){ if(this.stackMin.isEmpty()){ this.stackMin.push(newNum); }else if(newNum<=this.getmin()){ this.stackMin.push(newNum); } this.stackData.push(newNum); } //出栈 public int pop(){ if(this.stackData.isEmpty()){ throw new RuntimeException("Your stack is Empty"); } int value = this.stackData.pop(); if(value==this.getmin()){ this.stackMin.pop(); } return value; } //取最小值 public int getmin(){ if(this.stackMin.isEmpty()){ throw new RuntimeException("Your stack is Empty"); } return this.stackMin.peek(); } }
相关文章推荐
- 栈和队列之设计一个有getMin(得到最小值)功能的栈
- 栈和队列 设计一个有getMin()功能的栈
- 1_1栈和队列_设计一个有Getmin功能的栈
- 算法与数据结构题目的 PHP 实现:栈和队列 设计一个有 getMin 功能的栈
- 栈和队列---设计一个有getMin功能的栈
- 1栈和队列--设计一个有getMin功能的栈
- (一)栈和队列--设计一个有getMin功能的栈 java实现
- 栈和队列——设计一个有getMin功能的栈(二)
- 左神的书——《程序员代码面试指南》之设计一个有getmin功能的栈 c++实现
- 程序员面试指南之设计一个有GetMin功能的栈
- 设计一个带有getMin功能的栈
- 设计一个有getMin功能的栈 程序员代码面试指南
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- Stack介绍以及设计一个有getMin 功能的栈
- [算法最优]设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 栈和队列面试题之--实现一个有getMin功能的栈
- 栈和队列(1)——一个有getMin功能的栈