题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

思路

定义一个辅助的成员变量,当有新元素进栈时,比较成员变量和新进栈元素的大小,如果新进栈元素小,则更新成员变量中值,但当栈中元素出栈时,无法得到次最小的元素,所以仅定义一个成员变量的值存放最小的值时不够的,还需要借助一个辅助栈,把每次新入栈元素的最小值都给保存下来。

代码

public class Solution {Stack<Integer> stack1 = new Stack<>();Stack<Integer> stack2 = new Stack<>();public void push(int node) {stack1.push(node);if(stack2.empty()){stack2.push(node);}else{ if(node<=(int)stack2.peek()){  //比较新入栈元素(node)和辅助栈中最小元素((int)stack2.peek())stack2.push(node);}else{stack2.push(stack2.peek());} }}public void pop() {stack2.pop();stack1.pop();}public int top() {return (int)stack1.peek();}public int min() {return (int)stack2.peek();}
}

每天一道剑指offer-包含min函数的栈相关推荐

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

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

  2. 剑指Offer 包含min函数的栈

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

  3. 剑指offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 先介绍一下java.util.Stack.peek()方法实例: 下面的例子显示java.util.Stack.pee ...

  4. 剑指offer-JZ30 包含min函数的栈(C++,附自己的分析)

    描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop.top 和 min 函数操作时,栈中一定有元素. 此栈包含的方法有: push(value ...

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

    题目:包含min函数的栈 要求:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). class Solution { public:void pus ...

  6. 剑指Offer-Python-包含min函数的栈

    题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路:占了python的便宜,直接用min()函数. # -*- co ...

  7. 剑指Offer30-包含min函数的栈(单调栈)

    问题描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinStack minStac ...

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

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 思路 把每次的最小元素(之前的最小元素和新压入战的元素两者的较小值)都保存起来放到另外一个辅助栈里. 如果每次都把最小 ...

  9. 【简洁写法】剑指 Offer 30. 包含min函数的栈

    立志用最少的代码做最高效的表达 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinSt ...

  10. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

最新文章

  1. Java h265视频抽帧提取照片支持Window,Linux
  2. 收集到的一些网络工程师面试题 和大家分享下
  3. Tomcat 输入http://localhost:8080打不开网页的解决方法
  4. React学习:入门实例-学习笔记
  5. GlassFish linux下配置服务并自动启动
  6. 愿你白天有说有笑,晚上睡个好觉
  7. 第八节: Quartz.Net五大构件之SimpleThreadPool及其四种配置方案
  8. 【干货】卷积神经网络Alex-Net、VGG-Nets、Network-In-Network案例分析
  9. 平台卖家要不要做独立站?
  10. CentOS笔记-系统概述
  11. [实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?
  12. LAN9252 out端口识别不到的原因排查
  13. KubernetesAPI审计日志方案
  14. 慧荣SMI_量产图文教程
  15. JavaScript最详细攻略
  16. FCC KDB 680106 无线充电(WPT)更新解读
  17. 机器人操作系统(ROS):未来机器人编程的关键核心
  18. Word中灵活的首字下沉
  19. 百度熊掌号基础seo教程之熊掌号运营技巧
  20. 计算广告的历史、现状及未来

热门文章

  1. postgresql学习笔记(五)备份与恢复
  2. nginx-status详解
  3. ubunut14.04修改时区,查看版本信息
  4. Group By和Order By的总结
  5. 文件压缩(C#代码)
  6. 今天看C++Primer发现的问题
  7. 进一步理解VC中的句柄
  8. 利用WinForm 更好的实现Web安装程序的更多功能
  9. 20.docker events
  10. 5. Web 的结构组件