-
Notifications
You must be signed in to change notification settings - Fork 5
/
Min Stack.java
35 lines (31 loc) · 881 Bytes
/
Min Stack.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.*;
class MinStack {
public void push(int x) {
if(arr.size()==0) arr.add(new Elem(x, x));
else {
int min = Math.min(arr.get(arr.size()-1).min,x);
arr.add(new Elem(x, min));
}
}
public void pop() {
if(arr.size()==0) throw new java.util.EmptyStackException();
arr.remove(arr.size()-1);
}
public int top() {
if(arr.size()==0) throw new java.util.EmptyStackException();
return arr.get(arr.size()-1).val;
}
public int getMin() {
if(arr.size()==0) throw new java.util.EmptyStackException();
return arr.get(arr.size()-1).min;
}
private ArrayList<Elem> arr = new ArrayList<Elem>();
private static class Elem {
int val;
int min;
Elem(int v, int m) {
val = v;
min = m;
}
}
}