继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

剑指offer

安卓软件程序开发入门学习
关注TA
已关注
手记 289
粉丝 49
获赞 282

         

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();	}}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP