20.包含min函数的栈
题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
思路分析:
设置两个栈,一个push,一个放置最小元素。
代码:
import java.util.Stack;
public class Solution {
    Stack<Integer>s1=new Stack<>();
    Stack<Integer>s2=new Stack<>();
    public void push(int node) {
        s1.push(node);
        if(s2.isEmpty())
            s2.push(node);
        if(node<=s2.peek())
            s2.push(node);
    }
    public void pop() {
        if(s1.peek()==s2.peek()){
            s2.pop();
        }
        s1.pop();
    }
    public int top() {
        return s1.peek();
    }
    public int min() {
        return s2.peek();
    }
}
20.包含min函数的栈的更多相关文章
- Coding Interviews 20 包含min函数的栈
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路 We need another data structure to sotre ... 
- 剑指Offer 20. 包含min函数的栈 (栈)
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 题目地址 https://www.nowcoder.com/practice/4c77 ... 
- 20包含min函数的栈
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 建一个辅助栈,把每次最小最小的元素(之前最小元素,与当前新入栈的元素比较)放在辅助栈里. import j ... 
- [剑指Offer] 20.包含min函数的栈
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. [思路1]两个栈Stack和Min,Stack为当前栈中元素,Min为与Stack中元素一一对应的当前栈最小值. cl ... 
- 20.包含min函数的栈 Java
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路 借助辅助栈实现: 压栈时:若辅助栈为空,则将节点压入辅助栈.否则,当当前节点小于 ... 
- 20.包含min函数的栈(python)
		题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution: def ... 
- 《剑指offer》— JavaScript(20)包含min函数的栈
		包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 实现代码 var stack = []; function push(node) { stack. ... 
- 【面试题021】包含min函数的栈
		[面试题021]包含min函数的栈 MinStack.cpp: 1234567891011121314151617181920212223242526272829303132333435363738 ... 
- 剑指Offer面试题:19.包含Min函数的栈
		一.题目:包含Min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). 这里我们要实现的就是min ... 
随机推荐
- libstdc++.so.6
			libstdc++.so.6遇到的问题: 1.提示version `GLIBCXX_3.4.14' not found /usr/lib64/libstdc++.so.: version `GLIBC ... 
- windows黑科技-记录dns log
			昨天看到袁哥微博,看到了这篇,今天测试了一下,记录下来: The DNS Client service does not log by default. However, if a file name ... 
- 2016.1.19 DEV Express控件GirdControl使用
			103.GridControl中添加Button RunDesigner,添加一列,设置对应字段FiledName,ColumnEdit选择ButtonEdit,此时默认风格像下拉框,需调整属性: 在 ... 
- UML设计九种图例
			一.作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分. UML语义:描述基于UML的精确元模型定义. UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语 ... 
- curl的特殊使用
			1.php可以通过shell_exec()和其他系统函数使用curl,也可用PHP带的libcurl库. $curl = curl_init("wwww.baidu.com"); ... 
- Android getWidth和getMeasuredWidth的区别
			getWidth 得到的事某个View的实际尺寸. getMeasuredWidth 得到的是某个View想要在parent view里面占的大小 相比你也见过这样的解释,听起来这样的解释也是云里雾里 ... 
- Python 网络爬虫 006 (编程)  解决下载(或叫:爬取)到的网页乱码问题
			解决下载(或叫:爬取)到的网页乱码问题 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 20 ... 
- HDOJ 1023 Train Problem II 卡特兰数
			火车进站出站的问题满足卡特兰数...卡特兰数的相关知识如下: 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名. ... 
- Ubuntu14.04文件目录说明
			一.Dev设备目录 二.etc配置文件目录 三.bin默认程序安装目录 四.boot系统启动用到的配置文件以及内核镜像 五.home用户目录 六.lib库文件目录 七.media系统自动挂载设备会选择 ... 
- Mac OS X 安装教程
			1)10.8.3 http://bbs.pcbeta.com/viewthread-1317754-1-1.html 2)10.9 http://blog.csdn.net/kissing_huo/a ... 
