This commit is contained in:
programmercarl
2023-02-18 09:18:51 +08:00
parent b0c67e3dff
commit d2311377a8
7 changed files with 129 additions and 47 deletions

View File

@@ -82,7 +82,7 @@ for (int i = 0; i < nums1.size(); i++) {
栈头到栈底的顺序,要从小到大,也就是保持栈里的元素为递增顺序。只要保持递增,才能找到右边第一个比自己大的元素。
可能这里有一些同学不理解,那么可以自己尝试一下用递减栈,能不能求出来。其实递减栈就是求右边第一个比自己小的元素了。
可能这里有一些同学不理解,那么可以自己尝试一下用递减栈,能不能求出来。**其实递减栈就是求右边第一个比自己小的元素了**
接下来就要分析如下三种情况,一定要分析清楚。
@@ -101,7 +101,7 @@ for (int i = 0; i < nums1.size(); i++) {
判断栈顶元素是否在nums1里出现过注意栈里的元素是nums2的元素如果出现过开始记录结果。
记录结果这块逻辑有一点小绕要清楚此时栈顶元素在nums2中右面第一个大的元素是nums2[i]即当前遍历元素。
记录结果这块逻辑有一点小绕要清楚此时栈顶元素在nums2数组中右面第一个大的元素是nums2[i]即当前遍历元素
代码如下:
@@ -116,7 +116,7 @@ while (!st.empty() && nums2[i] > nums2[st.top()]) {
st.push(i);
```
以上分析完毕C++代码如下:
以上分析完毕C++代码如下:(其实本题代码和 [739. 每日温度](https://programmercarl.com/0739.每日温度.html) 是基本差不多的)
```CPP