[剑指offer]包含min函数的栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
解题思路
用一个栈stack保存数据,用另外一个栈temp保存依次入栈最小的数
比如,stack中依次入栈5, 3, 4, 10, 2, 12, 1, 8
则temp依次入栈5, 3, 3,3, 2, 2, 1, 1
每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则用最小元素入栈。
参考代码
import java.util.Stack; public class Solution { Stack<Integer> stack = new Stack<>(); Stack<Integer> temp = new Stack<>(); int min = Integer.MAX_VALUE; public void push(int node) { stack.push(node); if(node < min){ temp.push(node); min = node; } else temp.push(min); } public void pop() { stack.pop(); temp.pop(); } public int top() { int t = stack.pop(); stack.push(t); return t; } public int min() { int m = temp.pop(); temp.push(m); return m; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
业余草分享面试题,JVM结构、GC工作机制详解
题外话:最近在应聘阿里2015暑期实习,感触颇多。机会总是留给有准备的人的,所以平常一定要注意知识的巩固和积累。知识的深度也要有一定的理解,不比别人知道的多,公司干嘛选你?关于JVM和GC,我相信学java的绝大部分人都听过,很多公司的面试官都爱问,一开始我也很头痛,问这么底层干什么,所以我每次面试也只是看看答案敷衍了事。最近面完阿里感觉真不能这样,知识不仅要知其然,还要知其所以然。其实弄懂了JVM和GC,对我们理解很多java知识都有帮助。网上有很多关于GC和JVM的文章,这篇博文主要是根据我最近看《深入理解Java虚拟机》的一些体会总结出来的,希望对新手有些帮助,也欢迎大牛拍砖。文章主要分为以下四个部分 JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。 一、JVM结构 根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。(右图表示了从java源文件到JVM的整个过程,可配合理解。 关于类的加载机制,可以参考htt...
- 下一篇
到底啥是JavaScript Mock
原文:But really, what is a JavaScript mock? By Ken C. Dodds 删减了前几段吹牛逼的内容,直接进入正题 第0步 要想知道mock是啥,首先得有东西让你去测、去mock,下面是我们要测试的代码: import {getWinner} from './utils' function thumbWar(player1, player2) { const numberToWin = 2 let player1Wins = 0 let player2Wins = 0 while (player1Wins < numberToWin && player2Wins < numberToWin) { const winner = getWinner(player1, player2) if (winner === player1) { player1Wins++ } else if (winner === player2) { player2Wins++ } } return player1Wins > player...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装