【作业10】shopee真题:最小栈变形题
对应课程链接:拿捏算法面试课程
这是我在面试遇到的问题,大家可以想一想,如何实现时间和空间都是 O(1),核心突破口在于数值范围,有一定难度。
问题描述:
实现一个这样的栈,这个栈除了可以进行普通的push、pop操作以外,还可以进行getMin的操作,getMin方法被调用后,会返回当前栈的最小值。栈里面存放的都是 int 整数,并且数值的范围是 [-100000, 100000]。要求所有操作的时间复杂度是 O(1)。
附加:如果空间复杂度也能O(1)的话可加分
打卡要求:时间+空间都是O(1)就当作选做吧,你可以说一说你的想法,让空间/尽可能小勒。
参考答案
答案已经出来了,大家看这个文章解析:Shopee面试:最小栈的最优解
共以下 3 个回答
辅助栈
辅助栈 pro
进阶:辅助常量
时间O(1) 空间O(1)
“java
class MinStack {
}
“