题解 | #双栈——包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
/*利用两个栈实现
一个栈实现pop(),top(),push()
另一个栈的栈顶始终存最小元素
*/
class Solution {
public:
stack<int> s1;
stack<int> s2;
void push(int value) {
s1.push(value);
if(s2.empty() || s2.top() > value) s2.push(value);
else s2.push(s2.top());//始终保持和s1含有相同元素个数,为了保持与s1数据同步。
}
void pop() {
s1.pop();
s2.pop();
}
int top() {
return s1.top();
}
int min() {
return s2.top();
}
};
OPPO公司福利 1182人发布