算法: 包含min函数的栈
* @Description 包含min函数的栈
* @问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
* @思路:
1:Stack 类中的pop方法,push方法,peek方法;
2:min方法,借助迭代器Iterator,stack.iterator(),
借助方法iterator.hasNext()的while循环,逐个比较iterator.next()和
package LG.nowcoder; import java.util.Stack; import java.util.Iterator; /** * @Author liguo * @Description 包含min函数的栈 * @问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 * @思路: 1:Stack 类中的pop方法,push方法,peek方法; * 2:min方法,借助迭代器Iterator,stack.iterator(), * 借助方法iterator.hasNext()的while循环,逐个比较iterator.next()和 * @Data 2018-08-14 14:36 */ public class Solution9 { Stack <Integer> stack = new Stack <Integer>(); public void push(int node) { stack.push( node ); } public void pop() { stack.pop(); } public int top() { return stack.peek(); } public int min() { int min = stack.peek(); int temp = 0; Iterator <Integer> iterator = stack.iterator(); while (iterator.hasNext()) { //循环比较大小; temp = iterator.next(); if (min > temp) { min = temp; } } return min; } }