前言
去面试 Kyligence ,然后面试官出了一道题,当时没想到怎么实现,如何才能在 O(1) 的复杂度下实现呢,当时感觉掉坑里了,总觉得需要存储一个最小值顺序,那怎么也不可能在 O(1) 实现呀,后面面试官让我回去查一查,找到一个比较好的方式,就是记录每一个位置的最小值,这样与 Stack 的元素相对应,并不需要进行排序。就可以实现记录最小值,然而需要空间复杂度为 O(n)。
那是否有空间复杂度更小的做法呢?继续探索这个问题,因为很多元素的最小值可能会重复,这样我们没有必要存储重复的值,只需要存储索引范围即可,但最坏情况也是O(n),最好为O(1),无论如何,我们都要存储最小值,以防 pop 的时候更新