[LeetCode]面试题 03.02. 栈的最小值

题目描述

难度 简单

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/min-stack-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


思路

使用一个ArrayList加辅助Item实体类实现。

灵活使用集合ArrayList完成"栈"的功能,结合辅助类Item完成最小值的动态记录。

代码实现

执行结果:通过
执行用时:17 ms, 在所有 Java 提交中击败了91.20% 的用户
内存消耗:40.2 MB, 在所有 Java 提交中击败了28.03% 的用户
通过测试用例:18 / 18
2021年 11月 15日 星期一 22:48:21 CST

猜你喜欢

转载自blog.csdn.net/u014132947/article/details/121345627