Fork me on GitHub

包含min函数的栈

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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     }

 

posted @ 2019-07-02 09:02  gentleKay  阅读(108)  评论(0编辑  收藏  举报