[LeetCode]剑指 Offer 30. 包含min函数的栈
Posted Spring-_-Bear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]剑指 Offer 30. 包含min函数的栈相关的知识,希望对你有一定的参考价值。
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 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 次
题解:
/**
* 剑指 Offer 30. 包含min函数的栈
*
* @author Spring-_-Bear
* @datetime 2022-06-15 21:18
*/
public class MinStack
private final Stack<Integer> dataStack;
private final Stack<Integer> minStack;
/**
* initialize your data structure here.
*/
public MinStack()
dataStack = new Stack<>();
minStack = new Stack<>();
public void push(int x)
dataStack.push(x);
// 保证 minStack 的栈顶元素小于等于新加入的元素
if (minStack.isEmpty() || x <= minStack.peek())
minStack.push(x);
public void pop()
int peek = dataStack.pop();
if (peek == minStack.peek())
minStack.pop();
public int top()
return dataStack.peek();
public int min()
return minStack.peek();
以上是关于[LeetCode]剑指 Offer 30. 包含min函数的栈的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈