思路:
1、其实这个题很有意思,乍一看很简单嘛。直接new一个栈就ok了。
2、难就难在那个最小数上面,我这里用了一个比较蠢的办法,用一个list去存储当前数据,每次需要最小值的时候就去找出来。
3、找到一个求ArrayList最小值的方法,但是速度比自己写for还慢 Collections.min(arr)
class MinStack {
/** initialize your data structure here. */
private Stack<Integer> stack;
private List<Integer> arr;
private Integer min = 0;
public MinStack() {
stack = new Stack<>();
arr = new ArrayList<>();
}
public void push(int x) {
stack.push(x);
arr.add(x);
}
public void pop() {
Integer pop = stack.pop();
arr.remove(pop);
}
public int top() {
return stack.peek();
}
public int getMin() {
min = arr.get(0);
for(Integer i : arr) {
if(min > i)
min = i;
}
return min;
}
}