标签:stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
要求构建一个能随时返回最小值的栈 所以在执行 push和pop操作时 要对最小值进行更新 代码如下:
class MinStack { Stack<Integer> sta=new Stack<>(); int min=Integer.MAX_VALUE; public void push(int x) { sta.push(x); if(x<=min) min=x; } public void pop() { int a=sta.peek(); sta.pop(); if(a==min){ min=Integer.MAX_VALUE; if(!sta.isEmpty()){ for(int b:sta){ if(b<=min) min=b; } } } } public int top() { return sta.peek(); } public int getMin() { if(sta.isEmpty()) return 0; else return min; } }
标签:stack
原文地址:http://blog.csdn.net/u012734829/article/details/42491563