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;
    }
};
相关推荐
Tri_Function2 小时前
动态规划DP1(c++)
c++
清水迎朝阳5 小时前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
再卷也是菜6 小时前
C++17(下)
c++
alexwang2116 小时前
HDU 4348 详细题解
c++·算法·题解·hdu·主席树·可持久化数据结构·可持久化线段树
程序员zgh7 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
皓月斯语8 小时前
B2132 素数对
c++·算法·题解
星轨初途9 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
笨鸟先飞的橘猫10 小时前
c++面向对象编程
开发语言·c++
啦啦啦啦啦zzzz10 小时前
设计模式:桥接模式和组合模式
c++·设计模式·组合模式·桥接模式
-森屿安年-10 小时前
647. 回文子串
c++·算法·动态规划