LeetCode 155. Min Stack
来源:互联网 发布:人类的战斗力 知乎 编辑:程序博客网 时间:2024/06/05 07:49
题目:
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.
思路:
设置一个正常的栈s1,push、pop、top操作都和一般的栈一样,再设置一个用来返回最小值的栈mins,定义当栈mins为空时,或者x<=mins.top()时,x也入栈mins。在pop时,如果栈s和栈mins的top相等,则两个同时pop,否则只pop栈s。
代码:
class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { s1.push(x); if(mins.empty()||x<=mins.top()){//定义当栈mins为空时,或者x<=mins.top()时,x也入栈mins mins.push(x); } } void pop() { if(s1.top()==mins.top()){//如果栈s和栈mins的top相等,则两个同时pop,否则只pop栈s mins.pop(); } s1.pop(); } int top() { return s1.top(); } int getMin() { return mins.top(); }private: stack<int> s1;//正常的栈s1,push、pop、top操作都和一般的栈一样 stack<int> mins;//返回最小值的栈mins};/** * 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
- 155. Min Stack LeetCode
- [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
- C#中webbrowser与javascript(js)交互的方法
- c++ 编程常用库函数实现
- windows下写的shell脚本在linux执行出错的解决办法
- PCA的数学原理
- Python+Selenium练习篇之11-浏览器上前进和后退操作
- LeetCode 155. Min Stack
- 机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现
- Linux实现进度条
- 串的模式匹配算法1——Brute-Force(BF)算法
- 在Storyboard中设置tableview的secsion以及rows
- Leetcode 8. String to Integer (atoi)( C++版)
- 从IO到NIO
- Head First Java第二章
- TCP和UDP的区别