题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
 
思路:
这个题是想得到一个时间复杂度为O(1)的min函数,所以应用一个辅助栈,压的时候,如果A栈的压入比B栈压入大,B栈不压,,,,小于等于,AB栈同时压入,出栈,如果,AB栈顶元素不等,A出,B不出。
 
 
AC代码:
 class Solution {
public: stack<int> stack1,stack2; void push(int value) {
stack1.push(value);
if(stack2.empty())
stack2.push(value);
else if(value<=stack2.top())
{
stack2.push(value);
}
} void pop() {
if(stack1.top()==stack2.top())
stack2.pop();
stack1.pop(); } int top() {
return stack1.top();
} int min() {
return stack2.top();
} };

剑指Offer 包含min函数的栈的更多相关文章

  1. 剑指offer——包含min函数的栈

    题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度为O(1)) 该题是自己第一次采用编程的方式来实现Java中栈的功能,故直接借鉴了大牛的代码 import ...

  2. python剑指offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution: def ...

  3. 用js刷剑指offer(包含min函数的栈)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 牛客网链接 js代码 const stack1 = [] const stack2 = ...

  4. 剑指Offer30——包含min函数的栈

    剑指Offer30--包含min函数的栈 1. 题目简述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用min.push及pop的时间复杂度是O(1). 2. 题 ...

  5. 剑指offer--27.包含min函数的栈

    时间限制:1秒 空间限制:32768K 热度指数:252822 本题知识点: 栈 算法知识视频讲解 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为 ...

  6. 剑指Offer-20.包含min函数的栈(C++/Java)

    题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 分析: 因为题目要求得到栈中最小元素的min函数时间复杂度为O(1),这里便不选择遍历栈 ...

  7. 剑指Offer19 包含min函数的栈

    /************************************************************************* > File Name: 19_MinInS ...

  8. 剑指:包含min函数的栈(min栈)

    题目描述 设计一个支持 push,pop,top 等操作并且可以在 O(1) 时间内检索出最小元素的堆栈. push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 get ...

  9. 剑指offer-包含min函数的栈20

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). class Solution: def __init__(self): self.st ...

随机推荐

  1. oc面向对象特性: 多态

    多态:不同对象以自己的方式响应相同的消息的能力叫做多态.   多态的主要好处就是简化了编程接口.在类与类之间可以重复命名. 下面的例子是一个彩色打印机和黑白打印机这两种打印机,然后Person类中有一 ...

  2. CentOS6.x安装配置nginx

    nginx安装 nginx的官网:http://nginx.org/   相应下载页面:http://nginx.org/en/download.html   我这里使用nginx的yum在线安装 w ...

  3. input disabled 表单禁用

    启用 <input type="> 禁用 <input type=" disabled="">

  4. Redis学习——SDS字符串源码分析

    0. 前言 这里对Redis底层字符串的实现分析,但是看完其实现还没有完整的一个概念,即不太清楚作者为什么要这样子设计,只能窥知一点,需要看完redis如何使用再回头来体会,有不足之处还望告知. 涉及 ...

  5. Specified key was too long; max key length is 767 bytes mysql

    Specified key was too long; max key length is 767 bytes 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该 ...

  6. PHP数组处理函数的使用array_map(三)

    /*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...

  7. 存储过程中的when others then 和 raise

    EXCEPTION when others then rollback; dbms_output.put_line('code:' || sqlcode); dbms_output.put_line( ...

  8. c#之Redis队列在邮件提醒中的应用

    场景 有这样一个场景,一个邮件提醒的windows服务,获取所有开启邮件提醒的用户,循环获取这些用户的邮件,发送一条服务号消息.但问题来了,用户比较少的情况下,轮询一遍时间还能忍受,如果用户多了,那用 ...

  9. 用eclipse导入jar包并使其在一个文件夹下

    步骤如下:1.右键点击你需要添加jar包的项目. 2.选择“Properties”. 3.然后选择对话框中的“Java Build Path”. 4.选择“Libraries”选项卡,然后点击右边的“ ...

  10. thinkphp 完整配置config.php

    ThinkPHP的系统配置都采用数组形式,配置文件地址:Bin/Conf/config.php CHECK_FILE_CASE -- windows环境下面的严格检查大小写.     /* 项目设定 ...