Skip to content

Commit a3dac08

Browse files
author
lucifer
committed
fix: typo
1 parent 23b0d29 commit a3dac08

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

thinkings/monotone-stack.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363

6464
### 适用场景
6565

66-
单调栈适合的题目是求解**第一个一个大于 xxx**或者**第一个小于 xxx**这种题目。所有当你有这种需求的时候,就应该想到单调栈。
66+
单调栈适合的题目是求解**下一个大于 xxx**或者**下一个小于 xxx**这种题目。所有当你有这种需求的时候,就应该想到单调栈。
6767

68-
那么为什么单调栈适合求解**第一个一个大于 xxx**或者**第一个小于 xxx**这种题目?原因很简单,我这里通过一个例子给大家讲解一下。
68+
那么为什么单调栈适合求解**下一个大于 xxx**或者**下一个小于 xxx**这种题目?原因很简单,我这里通过一个例子给大家讲解一下。
6969

7070
> 这里举的例子是单调递增栈
7171
@@ -84,7 +84,7 @@
8484

8585
对于上面的例子,我可以在原数组 [1,3,4,5,2,9,6] 的右侧添加一个小于数组中最小值的项即可,比如 -1。此时的数组是 [1,3,4,5,2,9,6,-1]。这种技巧可以简化代码逻辑,大家尽量掌握。
8686

87-
上面的例子如果你明白了,就不难理解为啥单调栈适合求解**第一个一个大于 xxx**或者**第一个小于 xxx**这种题目了。比如上面的例子,我们就可以很容易地求出**在其之后第一个小于其本身的位置**。比如 3 的索引是 1,小于 3 的第一个索引是 4,2 的索引 4,小于 2 的第一个索引是 0,但是其在 2 的索引 4 之后,因此不符合条件,也就是不存在**在 2 之后第一个小于 2 本身的位置**
87+
上面的例子如果你明白了,就不难理解为啥单调栈适合求解**下一个大于 xxx**或者**下一个小于 xxx**这种题目了。比如上面的例子,我们就可以很容易地求出**在其之后第一个小于其本身的位置**。比如 3 的索引是 1,小于 3 的第一个索引是 4,2 的索引 4,小于 2 的第一个索引是 0,但是其在 2 的索引 4 之后,因此不符合条件,也就是不存在**在 2 之后第一个小于 2 本身的位置**
8888

8989
上面的例子,我们在第 6 步开始 pop,第一个被 pop 出来的是 5,因此 5 之后的第一个小于 5 的索引就是 4。同理被 pop 出来的 3,4,5 也都是 4。
9090

0 commit comments

Comments
 (0)