题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
我们一直要知道关于Stack的方法。查看JDK1.8,如下所示:

时间复杂度:
https://www.toutiao.com/i6593144782992704007/ 【转】程序员小灰 (使用漫画的形式,生动,能让人自动的往下看)
1 import java.util.Iterator; 2 import java.util.Stack; 3 /* 4 * 题目描述 5 * 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 6 */ 7 8 9 10 public class Main20 { 11 12 Stack<Integer> stack = new Stack<>(); 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 17 } 18 19 public void push(int node) { 20 stack.push(node); 21 } 22 23 public void pop() { 24 stack.pop(); 25 } 26 27 public int top() { 28 return stack.peek(); 29 } 30 31 public int min() { 32 int min = stack.peek(); 33 int temp; 34 35 Iterator<Integer> it = stack.iterator(); 36 while(it.hasNext()) { 37 temp = it.next(); 38 if (temp < min) { 39 min = temp; 40 } 41 } 42 return min; 43 }