leet-code/LeetCode/src/main/java/leetcode/editor/cn/BaoHanMinhanShuDeZhanLcof.java

85 lines
1.9 KiB
Java
Raw Normal View History

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