题目描述
难度 简单
请设计一个栈,除了常规栈支持的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