算法题

来源:1-1 哈希表基础

weixin_慕圣6334738

2022-02-07 09:46:36

老师您好,想请教下您leetcode1353题代码库中第二个方法(Using priority queue)代码背后的思路是怎么样的? 同时,由于是java出身没太看懂这段代码, 我猜大概就是把原数组的每一个都推入优先队列,

但是这段代码中是怎么定义那个数组是优先的呢?

相关代码:

priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;    
for(const vector<int>& e: events)    
pq.push(make_pair(e[0], e[1]));


感谢您的回复:)

写回答

1回答

liuyubobobo

2022-02-07

C++ 中的优先队列默认是最大堆,你给出的写法定义了一个最小堆。


所以对于每一个一个 pair,先比较第一个元素,第一个元素不同的情况下,越小越先出队。在第一个元素相同的情况下,看第二个元素,第二个元素越小越先出队。


继续加油!:)

0

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2636 学习 · 1090 问题

查看课程

相似问题