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;
    }
};
相关推荐
Elnaij5 分钟前
从C++开始的编程生活(24)——C++11标准Ⅰ
开发语言·c++
mjhcsp8 分钟前
AT_arc205_c [ARC205C] No Collision Moves 题解
开发语言·c++·算法·题解
wanderist.27 分钟前
高维矩阵的压维存储和高维差分
c++·算法·蓝桥杯
王璐WL1 小时前
【C++】经典且易错的题
c++
feasibility.1 小时前
OpenCV图像滤波算法应用:常见滤波器的原理与效果对比(含c++/python代码与中文显示)
c++·opencv·算法
Rabitebla1 小时前
快速排序(QuickSort)完全指南 —— 从原理到工业级优化
c语言·数据结构·c++·算法·github
迷途之人不知返1 小时前
string
c++
liulilittle1 小时前
OPENPPP2 CTCP 协议栈 + 内置 TC Hairpin NAT 内核态程序
c语言·开发语言·网络·c++·信息与通信·通信
第二只羽毛1 小时前
C++ 高并发内存池4
java·大数据·linux·c++·算法
散峰而望1 小时前
【数据结构】并查集从入门到精通:基础实现、路径压缩、扩展域、带权,一网打尽
数据结构·c++·算法·github·剪枝·推荐算法