leetcode_155_Min Stack(C++)(easy)
来源:互联网 发布:开源旅游cms 编辑:程序博客网 时间:2024/05/22 05:25
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.
Example:
MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> Returns -3.minStack.pop();minStack.top(); --> Returns 0.minStack.getMin(); --> Returns -2.
思路:参考剑指offer的面试题21:包含min函数的栈
分别定义两个栈,一个数据栈,一个最小值栈,这里我们运用vector容器来模拟。在每一次push过程中,数据栈中都会压入该数据,如果该数小于最小值栈顶元素,则压入,否则将最小值栈顶元素再压入最小值栈。每一次pop的过程,分别从两个栈弹出栈顶元素
class MinStack {private: int count; vector<long long> num; vector<long long> min; public: /** initialize your data structure here. */ MinStack() { count = 0; } void push(int x) { num.push_back(x); if(count == 0) min.push_back(x); else { long long new_min = min[count - 1] < x ? min[count - 1] : x; min.push_back(new_min); } ++count; } void pop() { num.pop_back(); min.pop_back(); --count; } int top() { if(count > 0) return num[count - 1]; else return false; } int getMin() { if(count > 0) return min[count - 1]; else return false; }};/** * 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(C++)(easy)
- leetcode_155_Min Stack
- Min Stack[Easy]
- 155.Min Stack(Stack-Easy)
- [Leetcode 155, Easy] Min Stack
- 155. Min Stack [easy] (Python)
- Easy 155题 Min Stack
- 20.Valid Parentheses(Stack-Easy)
- 【Leetcode-Easy-155】 Min Stack
- c++:stack
- [Leetcode 225, Easy] Implement Stack using Queues
- 225. Implement Stack using Queues [easy] (Python)
- Leetcode 155. Min Stack (Easy) (cpp)
- 225. Implement Stack using Queues (Easy)
- An Easy Problem Of BFS(queue stack)
- LeetCode-Easy刷题(33) Min Stack
- [C#] Easy Hook Library
- C - Easy Game
- 剑指offer之面试题21包含min函数的栈
- 事件分发系列—View中的dispatchTouchEvent和onTouchEvent分析
- 润滑系统如何做到循环清洗?
- java 装饰设计模式
- poj1088 滑雪(记忆化搜索)
- leetcode_155_Min Stack(C++)(easy)
- List集合排序(默认及自定义排序)
- A Beginner's Guide To LVM [1/9]
- android的mvp与传统的mvc的比较
- spring mvc传值 html取值
- caffe cifar10 net笔记
- ios数组倒序
- Apache POI系列教程2-1:poi入门教程--excel百万数据的导入导出
- 《机器学习实战》AdaBoost算法的分析与实现