每天一道剑指offer-包含min函数的栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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函数的栈相关推荐
- python剑指offer 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution:def _ ...
- 剑指Offer 包含min函数的栈
时间限制:1秒 空间限制:32768K 热度指数:158697 本题知识点: 栈 算法知识视频讲解 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 给出代码: cla ...
- 剑指offer 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 先介绍一下java.util.Stack.peek()方法实例: 下面的例子显示java.util.Stack.pee ...
- 剑指offer-JZ30 包含min函数的栈(C++,附自己的分析)
描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop.top 和 min 函数操作时,栈中一定有元素. 此栈包含的方法有: push(value ...
- 剑指offer---包含min函数的栈
题目:包含min函数的栈 要求:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). class Solution { public:void pus ...
- 剑指Offer-Python-包含min函数的栈
题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路:占了python的便宜,直接用min()函数. # -*- co ...
- 剑指Offer30-包含min函数的栈(单调栈)
问题描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinStack minStac ...
- 剑指offer-包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 思路 把每次的最小元素(之前的最小元素和新压入战的元素两者的较小值)都保存起来放到另外一个辅助栈里. 如果每次都把最小 ...
- 【简洁写法】剑指 Offer 30. 包含min函数的栈
立志用最少的代码做最高效的表达 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinSt ...
- 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
<LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...
最新文章
- Java h265视频抽帧提取照片支持Window,Linux
- 收集到的一些网络工程师面试题 和大家分享下
- Tomcat 输入http://localhost:8080打不开网页的解决方法
- React学习:入门实例-学习笔记
- GlassFish linux下配置服务并自动启动
- 愿你白天有说有笑,晚上睡个好觉
- 第八节: Quartz.Net五大构件之SimpleThreadPool及其四种配置方案
- 【干货】卷积神经网络Alex-Net、VGG-Nets、Network-In-Network案例分析
- 平台卖家要不要做独立站?
- CentOS笔记-系统概述
- [实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?
- LAN9252 out端口识别不到的原因排查
- KubernetesAPI审计日志方案
- 慧荣SMI_量产图文教程
- JavaScript最详细攻略
- FCC KDB 680106 无线充电(WPT)更新解读
- 机器人操作系统(ROS):未来机器人编程的关键核心
- Word中灵活的首字下沉
- 百度熊掌号基础seo教程之熊掌号运营技巧
- 计算广告的历史、现状及未来