85 lines
1.9 KiB
Java
85 lines
1.9 KiB
Java
|
//定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
// 示例:
|
|||
|
//
|
|||
|
// MinStack minStack = new MinStack();
|
|||
|
//minStack.push(-2);
|
|||
|
//minStack.push(0);
|
|||
|
//minStack.push(-3);
|
|||
|
//minStack.min(); --> 返回 -3.
|
|||
|
//minStack.pop();
|
|||
|
//minStack.top(); --> 返回 0.
|
|||
|
//minStack.min(); --> 返回 -2.
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
// 提示:
|
|||
|
//
|
|||
|
//
|
|||
|
// 各函数的调用总次数不超过 20000 次
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
//
|
|||
|
// 注意:本题与主站 155 题相同:https://leetcode-cn.com/problems/min-stack/
|
|||
|
// Related Topics 栈 设计
|
|||
|
// 👍 114 👎 0
|
|||
|
|
|||
|
package leetcode.editor.cn;
|
|||
|
|
|||
|
import java.util.Stack;
|
|||
|
|
|||
|
//面试题30:包含min函数的栈
|
|||
|
public class BaoHanMinhanShuDeZhanLcof{
|
|||
|
public static void main(String[] args) {
|
|||
|
//测试代码
|
|||
|
// Solution solution = new BaoHanMinhanShuDeZhanLcof().new Solution();
|
|||
|
}
|
|||
|
//力扣代码
|
|||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
|||
|
class MinStack {
|
|||
|
Stack<Integer> stack;
|
|||
|
Stack<Integer> min;
|
|||
|
|
|||
|
public MinStack() {
|
|||
|
stack = new Stack<>();
|
|||
|
min = new Stack<>();
|
|||
|
}
|
|||
|
|
|||
|
public void push(int val) {
|
|||
|
if (stack.isEmpty()) {
|
|||
|
min.push(val);
|
|||
|
} else {
|
|||
|
min.push(Math.min(min.peek(), val));
|
|||
|
}
|
|||
|
stack.push(val);
|
|||
|
}
|
|||
|
|
|||
|
public void pop() {
|
|||
|
stack.pop();
|
|||
|
min.pop();
|
|||
|
}
|
|||
|
|
|||
|
public int top() {
|
|||
|
return stack.peek();
|
|||
|
}
|
|||
|
|
|||
|
public int getMin() {
|
|||
|
return min.peek();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 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.min();
|
|||
|
*/
|
|||
|
//leetcode submit region end(Prohibit modification and deletion)
|
|||
|
|
|||
|
}
|