155. Min Stack

Posted warmland

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了155. Min Stack相关的知识,希望对你有一定的参考价值。

两个stack,一个存正常的数,一个存min值,重点在于,如果有和当前最小值一样的新的数进来,也要推进min stack

 1 public class MinStack {
 2     Stack<Integer> stack;
 3     Stack<Integer> min;
 4 
 5     /** initialize your data structure here. */
 6     public MinStack() {
 7         stack = new Stack<Integer>();
 8         min = new Stack<Integer>();
 9     }
10     
11     public void push(int x) {
12         if(min.isEmpty() || x <= min.peek()) {
13             min.push(x);
14         }
15         stack.push(x);
16     }
17     
18     public void pop() {
19         if(!min.isEmpty()) {
20             int curMin = min.peek();
21             int cur = stack.pop();
22             if(curMin == cur) {
23                 min.pop();
24             }
25         }
26     }
27     
28     public int top() {
29         return stack.peek();
30     }
31     
32     public int getMin() {
33         return min.peek();
34     }
35 }

 

以上是关于155. Min Stack的主要内容,如果未能解决你的问题,请参考以下文章

155. Min Stack

#Leetcode# 155. Min Stack

155. Min Stack - Unsolved

155. Min Stack

Leetcode 155. Min Stack

155. Min Stack