定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
2017-08-30 20:33
676 查看
问:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。时间复杂度为O(1)。
import java.util.Stack;
public class Solution {
//此栈保存元素
Stack<Integer> ele = new Stack<Integer>();
//此栈保存最小值
Stack<Integer> min = new Stack<Integer>();
//入栈,元素先保存,判断当前入栈的数据与栈中最小值相比较谁最小,如果当前的小,入栈min,否则不变
public void push(int node) {
ele.push(node);
if(min.isEmpty()){
min.push(node);
}else{
if(min.peek()>node){
min.push(node);
}
}
}
//出栈,将出栈的元素放到一个变量中,判断是否是最小元素,如果是则将保存最小元素的栈中数据弹出
public void pop() {
int topData = ele.peek();
ele.pop();
if(topData==this.min()){
min.pop();
}
}
//获取最小值,如果占中有数据,则是最小值,如果没有,则栈已经被弹空
public int min() {
if(min.isEmpty()){
return Integer.MAX_VALUE;
}else{
return min.peek();
}
}
}
import java.util.Stack;
public class Solution {
//此栈保存元素
Stack<Integer> ele = new Stack<Integer>();
//此栈保存最小值
Stack<Integer> min = new Stack<Integer>();
//入栈,元素先保存,判断当前入栈的数据与栈中最小值相比较谁最小,如果当前的小,入栈min,否则不变
public void push(int node) {
ele.push(node);
if(min.isEmpty()){
min.push(node);
}else{
if(min.peek()>node){
min.push(node);
}
}
}
//出栈,将出栈的元素放到一个变量中,判断是否是最小元素,如果是则将保存最小元素的栈中数据弹出
public void pop() {
int topData = ele.peek();
ele.pop();
if(topData==this.min()){
min.pop();
}
}
//获取最小值,如果占中有数据,则是最小值,如果没有,则栈已经被弹空
public int min() {
if(min.isEmpty()){
return Integer.MAX_VALUE;
}else{
return min.peek();
}
}
}
相关文章推荐
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。时间复杂度都是O(1)
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- java 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- java实现定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 17.定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer——定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。o(1)空间的代码实现
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 请设计包含min函数的栈,定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素