[Leetcode] 155. Min Stack 解题报告
来源:互联网 发布:南京云宝网络怎么样 编辑:程序博客网 时间:2024/05/14 07:19
题目:
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.
思路:
我自己的实现思路是:在栈中存贮一个pair<int, int>,其中第一个int是原有栈中的数值,第二个int是从栈底到当前位置的所有数值中的最小值。这种实现的空间复杂度是O(n),getMin()时间复杂度是O(1)。如果还是用原有的栈,只是在getMin()方法的实现中采用线性遍历,那么空间复杂度是O(1),时间复杂度则上升为O(n)。不知道有没有更好地方法?
代码:
class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { int min_value = st.empty() ? x : min(x, st.top().second); st.push(make_pair(x, min_value)); } void pop() { st.pop(); } int top() { return st.top().first; } int getMin() { return st.top().second; }private: stack<pair<int, int>> st; // in the pair, the first is the value, and the second is the min value up to now};/** * 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】Min Stack 解题报告
- 【LeetCode】Min Stack 解题报告
- [LeetCode]Min Stack,解题报告
- LeetCode-Min Stack-解题报告
- Min Stack 解题报告
- 解题报告: #115 Min Stack
- leetCode 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
- 155. Min Stack LeetCode
- [LeetCode]155. Min Stack
- LeetCode *** 155. Min Stack
- 到了Vue2.x有哪些变化?—— 组件通信
- 一键搭建本地yum源
- iframe中使用My97DatePicker WdatePicker()无法弹框
- Leetcode: symmetric-tree
- Java多线程系列——原子类的实现(CAS算法)
- [Leetcode] 155. Min Stack 解题报告
- foreach后通过checkbox获取值
- ${pageContext.request.contextPath} JSP取得绝对路径
- Vue2版Cnode社区webapp
- 那些年我们遇到的坑(2)-FeignClient
- 题目1064:反序数
- Vue2.0进阶组件篇4 突如其来(时间倒计时组件)
- Kotlin语法(六)
- 在macOS环境下安装Redis