手记

剑指offer

         

package jianzhiOffer;import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得 * 到栈最小元素的min函数。  * @author user * 思路:创建两个栈,一个用于存储数据,一个用于 * 存储最小数据,还要注意两个栈应该保持同步的入栈 * 和出栈,以保证minStack顶部始终是最小的数据 */public class ch20 {	Stack<Integer> stack = new Stack<>();	Stack<Integer> minStack = new Stack<>();	Integer tmp = null;	public void push(int node) {		stack.push(node);		//判断如果为空则直接压入		if(minStack.isEmpty()) {			minStack.push(node);		} else {			//否则,进行比较			tmp = stack.peek();			if(tmp <= minStack.peek()) {				minStack.push(tmp);			} else {				//当发现当前压入数据不是最小的时候,minStack还应继续压入以前的最小数				//以此保证minStack顶部始终是最小的数据				minStack.push(minStack.peek());			}		}	}	public void pop() {		stack.pop();		minStack.pop();	}	public int top() {		return stack.peek();	}	public int min() {		return minStack.peek();	}}


0人推荐
随时随地看视频
慕课网APP