一、题目
二、代码
class MinStack
{
//保存{x,x}元组 巧妙
//对原始stack的封装
private Stack<int[]> st = new Stack<>();
public MinStack()
{
}
public void push(int val)
{
if(st.isEmpty() == true)
{
st.push(new int[] {val,val});
}
else
{
st.push(new int[] {val,Math.min(val,st.peek()[1])});
}
}
public void pop()
{
st.pop();
}
public int top()
{
return st.peek()[0];
}
public int getMin()
{
return st.peek()[1];
}
}
/**
* Your MinStack object will be instantiated and called as such:
* MinStack obj = new MinStack();
* obj.push(val);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.getMin();
*/