为了账号安全,请及时绑定邮箱和手机立即绑定

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
49
获赞与收藏
282

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消