class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
map<int,int> mp;
vector<int> ans(nums1.size(),0);
priority_queue<int,vector<int>,greater<int>> pq;
for(int i=0;i<nums2.size();i++){
mp[nums2[i]] = -1;
pq.push(nums2[i]);
if(pq.size() == 0) continue;
while(!pq.empty()){
if(nums2[i] > pq.top()){
mp[pq.top()] = nums2[i];
pq.pop();
}else break;
}
}
for(int i=0;i<nums1.size();i++) ans[i] = mp[nums1[i]];
return ans;
}
};
No.114 - LeetCode496
最新推荐文章于 2021-09-16 15:18:24 发布
本文介绍了一种使用C++优先队列(最小堆)实现元素查找的方法,通过实例展示了如何在不破坏堆结构的情况下查找比当前元素大的下一个元素。此方法适用于需要高效查找并维护有序集合的应用场景。
193

被折叠的 条评论
为什么被折叠?



