leet-code/src/main/java/leetcode/editor/cn/BaoHanMinhanShuDeZhanLcof.java
2021-04-29 23:21:52 +08:00

85 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 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 min() {
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)
}