首页 > 代码库 > Min Stack

Min Stack

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

  • push(x) -- Push element x onto stack.
  • pop() -- Removes the element on top of the stack.
  • top() -- Get the top element.
  • getMin() -- Retrieve the minimum element in the stack.

要求构建一个能随时返回最小值的栈 所以在执行 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;	    }}


 

Min Stack