剑指Offer------包含min函数的栈
2017-10-04 10:46
232 查看
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。<分析>
1.用一个栈data保存数据,另一个栈min保存依次出现的最小数
ex:data中依次入栈 5, 4 ,3,3,3,8,10,1
min中依次入栈5,4,3,3,3,no,no,1
no表示不入栈
每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不入栈。
import java.util.Stack; /** * * @author zy * @date 2017年10月4日 上午9:54:07 * @Decription 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 */ public class Ex13 { //用来存储数据的栈 Stack<Integer> data = new Stack<>(); //用来存储最小数的栈 Stack<Integer> min= new Stack<>(); Integer tmp = null; public void push(int node) { if (tmp != null) { if (node <= tmp) { tmp = node; min.push(node); } data.push(node); }else { tmp = node; data.push(node); min.push(node); } } public void pop() { int num = data.pop(); int num2 = min.pop(); if (num != num2) { min.push(num2); }else { //当min栈顶pop时,应该更新tmp的值 tmp = min.peek(); } } public int top() { return data.peek(); } public int min() { return min.peek(); } }
相关文章推荐
- 剑指offer:包含min函数的栈
- 剑指offer-20.包含min函数的栈
- 剑指offer 包含min函数的栈
- 剑指offer---包含min函数的桟
- 剑指OFFER之包含min函数的栈(九度OJ1522)
- 【剑指offer】面试题21:包含min函数的栈
- 【剑指offer】实现包含min函数的栈
- 剑指offer 21. 包含min函数的栈
- [剑指offer]包含min函数的栈
- 【剑指offer-Java版】21包含min函数的栈
- 剑指Offer----包含min函数的栈
- 剑指offer21-包含min函数的栈
- 剑指offer 4.3 举例形象化问题1- 包含Min函数的栈
- 剑指Offer 21 包含min函数的栈
- 剑指Offer之包含min函数的栈
- 剑指offer 包含min函数的栈
- 剑指offer——包含min函数的栈
- 剑指offer:包含min函数的栈
- 剑指Offer 21:包含min函数的栈
- 剑指offer——包含min函数的栈