剑指offer----包含min函数的栈
来源:互联网 发布:淘宝网充值 编辑:程序博客网 时间:2024/06/03 06:43
package offer;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 */import java.util.Stack;public class MinOfStack { /* * 定义两个栈,第一个栈用于存储存储数据的栈,记为data * 第二个栈用于存储最小值 */ Stack<Integer> data = new Stack<Integer>(); Stack<Integer> min = new Stack<Integer>(); //定义一个变量用于存储最小值 Integer temp = null; public void push(int node) { //如果最小值为null,说明这是第一个元素进入栈中,直接将这个值赋值为最小值 //并压入最小值栈 if (temp == null) { temp = node; min.push(node); //如果最小值不为0,说明这已经不是第一次将元素压入栈之中了 } else { //如果压入的元素小于等于最小值 //这个if判断没有加else条件,这是因为无论如何都要讲元素压入存储数据的栈 //抽取到判断条件之外 if (node <= temp) { //将该元素的值赋值给最小值 temp = node; //将该元素压入最小值栈 min.push(node); } } //将元素压入栈中 data.push(node); } //将栈之中的最顶端的元素移除 public void pop() { if(data != null){ //只需要移除data栈之中的最顶端的值就好 /* * 但是这里有一种特殊情况需要考虑 * 如果我要移除的顶端的元素是最小的值呢? * 如果我直接将data栈顶端的元素移除了 * 这时候min栈之中还是有保存这个元素的 * 所以需要对data,min栈同时进行pop操作 * 如果两个值不相等,就重新把min移除的元素push回去 */ int dataPop = data.pop(); int minPop = min.pop(); if(dataPop != minPop){ min.push(minPop); } //如果当前栈为null,抛出异常提示 }else{ throw new RuntimeException("栈为空"); } } //返回data最顶端的元素,并且不作移除操作 public int top() { int topNum = data.pop(); //pop后,再push回去 data.push(topNum); return topNum; } //返回data栈中的最小值,也就是返回min栈的栈顶 public int min() { //同top一样,pop后再push回去 int minNum = min.pop(); min.push(minNum); return minNum; }}
0 0
- 【剑指offer】包含min函数的栈
- 剑指offer--包含min函数的栈
- 剑指Offer-->包含min函数的栈
- 《剑指offer》包含min函数的栈
- 剑指offer - 包含min函数的栈
- 剑指offer-包含min函数的栈
- 剑指offer:包含min函数的栈
- 包含min函数的栈|剑指offer
- 剑指offer-包含min函数的栈
- 剑指offer 包含min函数的栈
- 剑指offer:包含min函数的栈
- 剑指offer 包含min函数的栈
- [剑指offer]包含min函数的栈
- 《剑指offer》-包含min函数的栈
- 剑指offer----包含min函数的栈
- 【剑指offer】包含min函数的栈
- 剑指offer|包含min函数的栈
- 《剑指offer》包含min函数的栈
- 对table中隐藏列数据的获取与修改
- Google 新系统 Fuchsia 概览和浅析
- 工具分享
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- 使用IntelliJ IDEA 通过maven插件运行tomcat7
- 剑指offer----包含min函数的栈
- Linux下快速静态编译Qt以及Qt动态/静态版本共存
- 刷简书阅读量
- HDU5015 233 Matrix(矩阵快速幂)
- Runtime.getRuntime().exec执行scp失败
- 使用tensorflow实现简单的多分类问题
- 《挑战程序设计竞赛》2.1 最基础的穷竭搜索
- css 新特征
- 自定义view(二):onDraw 之 Paint