We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9026e0b commit d848838Copy full SHA for d848838
lcof/面试题30. 包含min函数的栈/README.md
@@ -23,6 +23,14 @@ minStack.min(); --> 返回 -2.
23
24
## 解法
25
26
+- 若是无视时间复杂度需求,使用暴力解法:执行 `min()` 时,遍历整个栈,找到最小数返回,时间复杂度是 O(n);
27
+- 若是使用一个变量记录最小数,可以将时间复杂度拉到 O(1)。可是当最小数出栈之后就麻烦了,因为不知道第二小的数是谁;
28
+- 因此需要的是一个结构,当最小值离开,暴漏第二小的值,以此类推;
29
+- 此时使用一个新的栈,存储最小值,保证该栈顶元素为栈中最小数(称此栈为最小栈);
30
+- 当 `push()` 时,该值只有比最小栈栈顶元素更小,才放入最小栈当中;
31
+- 当最小值出栈时,最小栈进行出栈操作(`pop()`);
32
+- 不会有出栈问题,最小栈栈底存放了正常栈中栈底的元素。
33
+
34
<!-- tabs:start -->
35
36
### **Python3**
0 commit comments