LeetCode 第 155 题 (Min Stack)
来源:互联网 发布:考研英语时间分配知乎 编辑:程序博客网 时间:2024/05/21 10:44
LeetCode 第 155 题 (Min Stack)
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.
写一个小堆栈,本身没有什么难度,这道题比较特殊的地方是要求 getMin() 的执行时间是
为了达到这个要求,就需要将这些最小元素存储下来。下面的代码中用了两个 vector ,一个存放所有的数据,另一个只存中间这些所谓的最小元素。
这样,在任意时刻,m_min 的栈顶都存放的是 m_stack 最小元素。每次 getMin() 时只需返回 m_min 的栈顶元素就可以了。
class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { m_stack.push_back(x); if(m_min.empty() || x <= m_min.back()) { m_min.push_back(x); } } void pop() { if(!m_stack.empty()) { int x = m_stack.back(); m_stack.pop_back(); if(x == m_min.back()) { m_min.pop_back(); } } } int top() { if(!m_stack.empty()) { return m_stack.back(); } return 0; } int getMin() { if(!m_min.empty()) { return m_min.back(); } return 0; }private: vector<int> m_stack; vector<int> m_min;};
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
- leetcode 169
- yum源 改为163
- ios 获取真机的crash日志(一)
- NSArray中containsObject的用法
- 正常的Java web项目 Deployment Assembly 配置
- LeetCode 第 155 题 (Min Stack)
- 三个二维数组的比较
- 汽水瓶
- Big-Endian and Little-Endian Test in ARM and PowerPC SoC
- java面试经常遇到的
- Android ContentProvider 完全解析及简单DEMO
- 基于wpa_supplicant库的WIFI连接功能实现--wpa_cli命令代码改写
- CSS伪类before,after制作左右横线中间文字效果
- fastjson 序列化枚举问题