mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2026-02-02 18:39:09 +08:00
Update
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user