2940. 找到 Alice 和 Bob 可以相遇的建筑

2940. 找到 Alice 和 Bob 可以相遇的建筑


题目链接:2940. 找到 Alice 和 Bob 可以相遇的建筑

代码如下:

cpp 复制代码
//参考链接:https://leetcode.cn/problems/find-building-where-alice-and-bob-can-meet/solutions/2533058/chi-xian-zui-xiao-dui-pythonjavacgo-by-e-9ewj
class Solution 
{
public:
    vector<int> leftmostBuildingQueries(vector<int>& heights, vector<vector<int>>& queries) 
    {
        vector<int> res(queries.size(),-1);
        vector<vector<pair<int,int>>> qs(heights.size());
        for(int i=0;i<queries.size();i++)
        {
            int a=queries[i][0],b=queries[i][1];
            if(a>b)
            {
                swap(a,b);
            }
            if(a==b||heights[a]<heights[b])
            {
                res[i]=b;
            }
            else
            {
                qs[b].emplace_back(heights[a],i);
            }
        }

        priority_queue<pair<int,int>,vector<pair<int,int>>,greater<>> pq;
        for(int i=0;i<heights.size();i++)
        {
            while(!pq.empty()&&pq.top().first<heights[i])
            {
                res[pq.top().second]=i;
                pq.pop();
            }
            for(auto&p:qs[i])
            {
                pq.emplace(p);
            }
        }
        return res;
    }
};
相关推荐
码小猿的CPP工坊2 分钟前
C++软件开发之内存泄漏闭坑方法
开发语言·c++
Benny_Tang5 分钟前
题解:CF2164C Dungeon
c++·算法
青小莫1 小时前
C语言vsC++中的动态内存管理(内含底层实现讲解!)
java·c语言·c++
持梦远方1 小时前
算法剖析1:摩尔投票算法 ——寻找出现次数超过一半的数
c++·算法·摩尔投票算法
AI视觉网奇2 小时前
ue5 自定义 actor ac++ actor 用法实战
java·c++·ue5
明洞日记2 小时前
【软考每日一练002】进程调度机制详解
c++·ai·操作系统·进程
FMRbpm2 小时前
树的练习6--------938.二叉搜索树的范围和
数据结构·c++·算法·leetcode·职场和发展·新手入门
C+-C资深大佬3 小时前
C++数据类型
开发语言·c++·算法
初次见面我叫泰隆4 小时前
Qt——1、初识Qt
开发语言·c++·qt
兵哥工控4 小时前
MFC 对话框Alt+F4退出程序实例
c++·mfc