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;
    }
};
相关推荐
卡提西亚27 分钟前
C++笔记-21-运算符重载
c++·笔记
草莓熊Lotso43 分钟前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
利刃大大1 小时前
【动态规划:01背包】01背包详解 && 模板题 && 优化
c++·算法·动态规划·力扣·背包问题
9ilk1 小时前
【基于one-loop-per-thread的高并发服务器】--- 前置技术
运维·服务器·c++·笔记·后端·中间件
苏比的博客3 小时前
Windows MFC添加类,变量,类导向
c++·windows·mfc
yudiandian20143 小时前
MFC - 使用 Base64 对图片进行加密解密
c++·mfc
yudiandian20143 小时前
MFC - Picture Control 控件显示图片
c++·mfc
我是李武涯8 小时前
从`std::mutex`到`std::lock_guard`与`std::unique_lock`的演进之路
开发语言·c++
卡提西亚9 小时前
C++笔记-10-循环语句
c++·笔记·算法
亮剑20189 小时前
第1节:C语言初体验——环境、结构与基本数据类型
c++