- 原题链接:155. 最小栈
1- 思路
栈中存入数组对,实现最小栈
- 维护的元素为
[value1, minV]
——> 其中value1
为栈顶元素,minV
为当前栈最小值
2- 实现
⭐155. 最小栈——题解思路
class MinStack {
Stack<int[]> st = new Stack<>();
public MinStack() {
}
public void push(int val) {
if(st.isEmpty()){
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() {
int[] to = st.peek();
return to[0];
}
public int getMin() {
int[] min = st.peek();
return min[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();
*/