LeetCode Min Stack 最小值栈
题意:实现栈的四个基本功能。要求:在get最小元素值时,复杂度O(1)。
思路:链表直接实现。最快竟然还要61ms,醉了。
1 class MinStack { 2 public: 3 MinStack(){ 4 head.next=0; 5 head.t=0; 6 m=0x7FFFFFFF; 7 } 8 void push(int x) { 9 node *p=(node *)new(node); 10 p->t=x; 11 p->next=head.next; 12 head.next=p; 13 head.t++; 14 if(x < m) //要更新 15 m = x; 16 } 17 18 void pop() { 19 20 if(0==head.t) return ; 21 else if(head.t) 22 { 23 head.t--; 24 if(head.next->t==m) //刚好等于最小值m,要更新最小值 25 { 26 int sma=0x7FFFFFFF; 27 node *p=head.next->next; 28 while( p ) 29 { 30 if(p->t<sma) 31 sma=p->t; 32 p=p->next; 33 } 34 m=sma; 35 } 36 head.next=head.next->next; 37 } 38 } 39 40 int top() { 41 if(head.t) 42 return head.next->t; 43 return 0; 44 } 45 46 int getMin() { 47 return m; 48 } 49 private: 50 struct node 51 { 52 int t; 53 node *next; 54 }; 55 node head; 56 int m; 57 };
View Code
转载于:https://www.cnblogs.com/xcw0754/p/4483646.html
LeetCode Min Stack 最小值栈相关推荐
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...
- Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈
Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术 ...
- 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
<LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...
- LeetCode剑指offer算法备战春招-包含min函数的栈
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...
- min java_LeetCode算法题-Min Stack(Java实现)
这是悦乐书的第177次更新,第179篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第36题(顺位题号是155).设计一个支持push,pop,top和在恒定时间内检索最小 ...
- 设计包含min函数的栈
2019独角兽企业重金招聘Python工程师标准>>> 题目: 设计一个栈,使得PUSH.POP以及GetMin(获取栈中最小元素)能够在常数时间内完成. 分析: 很刚开始很容易想到 ...
- 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列
一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...
- 包含min函数的栈 python_面试题_设计包含 min函数的栈
设计包含 min函数的栈() 定义栈的数据结构,要求添加一个 minminmin函数,能够得到栈的最小元素. 要求函数 min.push以及 pop 的时间复杂度都是 O(1). #include u ...
- [剑指offer]面试题21:包含min函数的栈
面试题21:包含min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). 栈内压入3.4.2.1之 ...
最新文章
- 高性能的JavaScript--加载和执行
- mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
- [导入]IIS无法显示asp页面
- 学python可以做什么产品-学了 Python,能用来做什么?实际应用场景有哪些??...
- python用户输入一行字符串_python字符串练习
- 牛客 - 焦糖布丁(线性基+博弈)
- linux plc编程软件,基于Linux平台的可编程控制器软PLC设计
- Visual Studio 2013 Xamarin for iOS 环境搭建
- linux常用命令和操作笔记
- 141.环形链表(力扣leetcode)博主可答疑该问题
- DB2安装到卸载一套龙服务
- ios模拟器 安装ipa_用iOS模拟器安装App的方法
- echaer 地图_Echarts实现中国地图、省份地图及对应数据展示
- 计算机主机的输出设备,计算机的输出设备有哪些呢?
- remix os显卡linux,Remix OS for PC 详细版的安装教程
- maven项目,pom.xml文件变成小虫子(蜘蛛)解决办法
- 2022年上半年财神爷最爱照顾的星座
- 【算法讲26:特征方程】求齐次线性一阶递推与二阶递推通项公式 | HDU 2021多校一 Pass!
- 如果要你向别人推荐电影,你最先想到的是那些呢?
- C语言中经典算法——斐波那契数列的几种算法
热门文章
- 基于 Android 6.0 的 小米 MIUI 8 已开源
- ubuntu远程访问摄像头的设置
- 使用mvc时,在视图view中使用强类型视图,在web.config文件中添加命名空间namespace的引用不起作用,解决方法...
- Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)
- 刚刚做了一个菜单导航变亮的效果,共享一下吧!
- 开源贡献 计算_现在贡献开源的3个理由
- 趋势交易 高 更高_2020年为开发商带来什么,以及更多的行业趋势
- awk 脚本_AWK单行代码和脚本可帮助您对文本文件进行排序
- raspberry pi_Raspberry Pi,CNC铣削,WTF,Cypht,HomeBank,Wekan等的使用方法
- flv 开源 修复_解决开源项目错误和修复的5个步骤