替换图片链接
This commit is contained in:
@@ -47,10 +47,10 @@
|
||||
首先要明确,要按照行来计算,还是按照列来计算。
|
||||
|
||||
按照行来计算如图:
|
||||

|
||||

|
||||
|
||||
按照列来计算如图:
|
||||

|
||||

|
||||
|
||||
一些同学在实现的时候,很容易一会按照行来计算一会按照列来计算,这样就会越写越乱。
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
这句话可以有点绕,来举一个理解,例如求列4的雨水高度,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
列4 左侧最高的柱子是列3,高度为2(以下用lHeight表示)。
|
||||
|
||||
@@ -201,7 +201,7 @@ public:
|
||||
|
||||
1. 首先单调栈是按照行方向来计算雨水,如图:
|
||||
|
||||

|
||||

|
||||
|
||||
知道这一点,后面的就可以理解了。
|
||||
|
||||
@@ -215,7 +215,7 @@ public:
|
||||
|
||||
如图:
|
||||
|
||||

|
||||

|
||||
|
||||
关于单调栈的顺序给大家一个总结: [739. 每日温度](https://programmercarl.com/0739.每日温度.html) 中求一个元素右边第一个更大元素,单调栈就是递增的,[84.柱状图中最大的矩形](https://programmercarl.com/0084.柱状图中最大的矩形.html)求一个元素右边第一个更小元素,单调栈就是递减的。
|
||||
|
||||
@@ -229,7 +229,7 @@ public:
|
||||
|
||||
如图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
4. 栈里要保存什么数值
|
||||
|
||||
@@ -284,7 +284,7 @@ if (height[i] == height[st.top()]) { // 例如 5 5 1 7 这种情况
|
||||
|
||||
如果当前遍历的元素(柱子)高度大于栈顶元素的高度,此时就出现凹槽了,如图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
取栈顶元素,将栈顶元素弹出,这个就是凹槽的底部,也就是中间位置,下标记为mid,对应的高度为height[mid](就是图中的高度1)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user