本文主要是介绍最小栈 【leetcode - 155 - 简单】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路:
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;}
}
这篇关于最小栈 【leetcode - 155 - 简单】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!