LeetCode:496. 下一个更大元素 I

class Solution {

public:

vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {

vector<int>greater=nextGreaterElement(nums2);

unordered_map<int,int>greaterMap;

for(int i=0;i<nums2.size();i++){

greaterMap[nums2[i]]=greater[i];

}

vector<int>res(nums1.size());

for(int i=0;i<nums1.size();i++){

res[i]=greaterMap[nums1[i]];

}

return res;

}

vector<int> nextGreaterElement(vector<int>& nums){

int n=nums.size();

vector<int>res(n);

stack<int> s;

for(int i=n-1;i>=0;i--){

while(!s.empty()&&s.top()<=nums[i]){

s.pop();

}

res[i]=s.empty()?-1:s.top();

s.push(nums[i]);

}

return res;

}

};

相关推荐
nianniannnn3 分钟前
力扣206.反转链表 92.反转链表II
算法·leetcode·链表
澈20710 分钟前
哈希表实战:从原理到手写实现
算法·哈希算法
旖-旎18 分钟前
哈希表(存在重复元素||)(4)
数据结构·c++·算法·leetcode·哈希算法·散列表
Run_Teenage21 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
John.Lewis22 分钟前
C++进阶(8)智能指针
开发语言·c++·笔记
被摘下的星星27 分钟前
数据结构中逻辑结构和存储结构对应有哪些
数据结构
無限進步D36 分钟前
蓝桥杯赛前刷题
c++·算法·蓝桥杯·竞赛
小贾要学习36 分钟前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
CoderCodingNo37 分钟前
【GESP】C++二级真题 luogu-B4497, [GESP202603 二级] 数数
开发语言·c++·算法
磊 子40 分钟前
八大排序之冒泡排序+选择排序
数据结构·算法·排序算法