代码随想录第50天|单调栈-496.下一个更大元素 I
最编程
2024-07-12 09:30:24
...
使用map映射索引号
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> mymap;
for (int i = 0; i < nums1.size(); i++) {
mymap[nums1[i]] = i;
}
stack<int> mystack;
vector<int> res(nums1.size(), -1);
mystack.push(0);
for (int i = 1; i < nums2.size(); i++) {
if (nums2[mystack.top()] >= nums2[i]) {
mystack.push(i);//大的沉底
} else {
while (!mystack.empty() && nums2[mystack.top()] < nums2[i]) {
if (mymap.find(nums2[mystack.top()]) != mymap.end()) {
int index = mymap[nums2[mystack.top()]];
res[index] = nums2[i];
}
mystack.pop();
}
mystack.push(i);
}
}
return res;
}
};
上一篇: EdgeOne安全能力开箱测评挑战赛
下一篇: 磁盘调度算法
推荐阅读
-
C++ 源代码生成 - 序言
-
桥接模式的解释和代码实现
-
STM32 I2C 通信协议详解
-
vue 通过元素用户界面的 el-date-picker 报告页眉时间,其中包括开始时间和结束时间
-
[C 语言教程] [嵌入式程序设计] (I) 简介和先决条件 (II) 嵌入式程序设计基础 (III) 硬件基础 (IV) 硬件寄存器操作
-
元素将时间和日期框设置为早于当前时间和日期,以禁用
-
令人震惊!原来,贡献开放源代码如此简单,几分钟就能上手!
-
系统架构设计器教程 第 19 章 19.4 Kappa 架构说明
-
微服务开源框架 TARS RPC 源代码初识 TARS C++ 服务器端
-
[Flutter] 基本入门:基本代码结构