push、pop的功能可以通过一个栈来解决,min的功能可以另一个栈来保存,栈里面存储的都是当前层到最底层的最小值,每次插入时都去比较插入较小值。
class Solution {
public:
void push(int value) {
m_normal.push(value);
if(m_min.empty())
{
m_min.push(value);
}else
{
if(value < m_min.top())
{
m_min.push(value);
}else
{
m_min.push(m_min.top());
}
}
}
void pop() {
if(!m_normal.empty())
m_normal.pop();
if(!m_min.empty())
m_min.pop();
}
int top() {
return m_normal.top();
}
int min() {
return m_min.top();
}
private:
stack<int> m_normal;
stack<int> m_min;
};
京公网安备 11010502036488号