Java實現-帶最小值的棧

實現一個帶有取最小值min方法的棧,min方法將返回當前棧中的最小值。

你實現的棧將支持pushpop 和 min 操作,所有操作要求都在O(1)時間內完成。

 注意事項

如果堆棧中沒有數字則不能進行min方法的調用

樣例

如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1

public class MinStack {
    
    Stack<Integer> stack;
	Stack<Integer> stack1;
	public MinStack(){
		stack=new Stack<Integer>();
		stack1=new Stack<Integer>();
	}
	
	public void push(int number){
		if(stack.isEmpty()){
			stack.push(number);
			stack1.push(number);
		}else{
			int num=stack.peek();
			stack1.push(number);
			if(num>number){
				stack.push(number);
			}else{
				stack.push(num);
			}
		}
	}
	
	public int pop(){
		if(stack.isEmpty()){
			return 0;
		}else{
			stack.pop();
			return stack1.pop();
		}
	}
	
	public int min(){
		if(stack.isEmpty()){
			return 0;
		}else{
			return stack.peek();
		}
	}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章