由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 弱问C++用heap的题能用multiset吗
相关主题
请教一道C++面试题G家电面(已挂)
面试用C++, heap 怎么办?找个码工就这么难?
A very bad phone interview from Amazon当数据很大时,如果做BFS、DFS?
n个排序链表,如何O(1) space合并成一个到底什么是priority queue啊?
问一下sortinginterview时要用stack,queue之类的东西可以不定义直接用吗
T家一面priority_queue C++ implementation
leetcode 上的k way merge弱弱的问个C++用priority_queue定义min heap的问题
几种linked List (array) merge 的复杂度(附个人体会)C++里如何将一个vector转换成priority_queue
相关话题的讨论汇总
话题: multiset话题: heap话题: c++话题: 题能话题: queue
进入JobHunting版参与讨论
1 (共1页)
b******i
发帖数: 914
1
问问,因为multiset实在写习惯了,新的priority_queue反而怕出bug。
请问面试的时候用multiset来代替heap可以吗(如果不要求实现heap本身的话),
multiset是基于红黑树的,复杂度应该都是log(n)的。
k****p
发帖数: 9
2
总感觉用红黑树代替heap有点overkill。 红黑树相对heap更加有序,虽然insert和
delete操作都是log(n),但红黑树前面系数会大很多。另外heap的getmin()或getmax()
O(1), 如果这个操作比较频繁的话,最好不要用红黑树。当然你可以改进红黑树,加个
max或min变量,也能到O(1)。
priority_queue不如自己写的heap灵活,不能update节点,比如不能用来实现http://www.geeksforgeeks.org/greedy-algorithms-set-7-dijkstras-algorithm-for-adjacency-list-representation/
b******i
发帖数: 914
3
同意,
priority_queue不能update节点。
但我指的情况比如leetcode上面merge K sorted list那题不是要用个heap吗,这种情
况如果我就用multiset面试官会说吗?

()

【在 k****p 的大作中提到】
: 总感觉用红黑树代替heap有点overkill。 红黑树相对heap更加有序,虽然insert和
: delete操作都是log(n),但红黑树前面系数会大很多。另外heap的getmin()或getmax()
: O(1), 如果这个操作比较频繁的话,最好不要用红黑树。当然你可以改进红黑树,加个
: max或min变量,也能到O(1)。
: priority_queue不如自己写的heap灵活,不能update节点,比如不能用来实现http://www.geeksforgeeks.org/greedy-algorithms-set-7-dijkstras-algorithm-for-adjacency-list-representation/

k****p
发帖数: 9
4
那样可以用priority_queue。priority_queue的函数名和stack一样的,pop,push,top很
好记。
面试官怎么看,我也不清楚。面试经验不多。。。
另外那个题也可以两两merge。假设总长度N,heap复杂度O(Nlog(K))。 两两merge的话
,每轮最多2N(list奇数2N,偶数N)。有log(K)轮。

【在 b******i 的大作中提到】
: 同意,
: priority_queue不能update节点。
: 但我指的情况比如leetcode上面merge K sorted list那题不是要用个heap吗,这种情
: 况如果我就用multiset面试官会说吗?
:
: ()

b******i
发帖数: 914
5
恩,有道理,两两merge

【在 k****p 的大作中提到】
: 那样可以用priority_queue。priority_queue的函数名和stack一样的,pop,push,top很
: 好记。
: 面试官怎么看,我也不清楚。面试经验不多。。。
: 另外那个题也可以两两merge。假设总长度N,heap复杂度O(Nlog(K))。 两两merge的话
: ,每轮最多2N(list奇数2N,偶数N)。有log(K)轮。

1 (共1页)
进入JobHunting版参与讨论
相关主题
C++里如何将一个vector转换成priority_queue问一下sorting
问个题。T家一面
请教MinHeap用STL实现leetcode 上的k way merge
有没有必要把各种数据结构的实现自己都写几遍写熟?几种linked List (array) merge 的复杂度(附个人体会)
请教一道C++面试题G家电面(已挂)
面试用C++, heap 怎么办?找个码工就这么难?
A very bad phone interview from Amazon当数据很大时,如果做BFS、DFS?
n个排序链表,如何O(1) space合并成一个到底什么是priority queue啊?
相关话题的讨论汇总
话题: multiset话题: heap话题: c++话题: 题能话题: queue