LeetCode 155: Min Stack
来源:互联网 发布:mac os 终端命令 编辑:程序博客网 时间:2024/06/15 09:41
题目链接:
https://leetcode.com/problems/min-stack/description/
描述
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
getMin() – Retrieve the minimum element in the stack.
算法思想:
这个可以使用栈来实现,但是存入栈中的是与最小值的差值,这样就可以在常量时间内来获取栈中最小值。
源代码
class MinStack {public: /** initialize your data structure here. */ long min; stack<long> S; MinStack() { } void push(long x) { if(S.empty()) { S.push(0L); min = x; } else { S.push(x - min); if(x < min) min = x; } } void pop() { if(S.empty()) return; else { long pop = S.top(); S.pop(); if(pop < 0) min -= pop; } } int top() { long top = S.top(); if(top > 0) { return (top + min); } else { return (int)min; } } int getMin() { return (int)min; }};/** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */
阅读全文
0 0
- LeetCode(155) Min Stack
- [leetcode 155] Min Stack
- leetCode #155 Min Stack
- LeetCode[155]Min Stack
- leetcode-155 Min Stack
- leetcode 155 Min Stack
- LeetCode[155]-Min Stack
- leetcode 155:Min Stack
- LeetCode---(155)Min Stack
- leetcode-155-Min Stack
- leetcode 155: Min Stack
- [leetcode] #155 Min Stack
- LeetCode 155 Min Stack
- 【LEETCODE】155-Min Stack
- LeetCode 155:Min Stack
- [leetcode 155] Min Stack
- leetcode 155: Min Stack
- 【leetcode】【155】Min Stack
- handler线程,判断是否联网,Get获取网页 json解析,输入流转换字符串
- 图解css3核心技术与案例实战(第一章)
- 7.读书笔记收获不止Oracle之 逻辑体系二 深入与调整
- Ubuntu 16.04下安装sogou 拼音输入法的错误问题
- CDOJ 360:Another LCIS(区间更新+区间合并)
- LeetCode 155: Min Stack
- matlab矩阵操作
- 如何从现有版本升级到element UI2.0
- [2017纪中11-2]失格 最小生成树+数论
- ASP.NET 事务处理
- hello
- 判断是否有网,判断网络连接,跳转至设置
- Linux命令(1)-cat & 反向tac
- mabatis学习之前今日内容介绍 1、final 关键字 2、static 关键字 3、匿名对象 4、内部类 5、包的声明与访问 6、访问修饰符 7、代码块 第一节课 ###01(面向对象)fin