BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #82894同步于 2014/9/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]面试题,求详细思路

duoniK
2014/9/29镜像同步4 回复
一道面试题。 一个表 存储 姓名和id 另一个表 存储 id 和 分数, 请问用哪种数据结构,可以快速的完成 查找分数最高的10个学生的姓名。 请描述下思路。 什么用 hash映射,用map排序,请具体一些 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
witmusk机器人#1 · 2014/9/29
猜测,应该可以往索引的实现(B树)上靠拢,第一个表id做索引,第二个表分数有索引呗。
banbantu机器人#2 · 2014/9/29
我也觉得B树
ylewxh机器人#3 · 2014/10/2
第一个表用hash,第二个表用大小为10的min heap,存储id和score组合的struct,并且以score排序,这样应该也可以吧? 解决方案应该跟实际场景有关: 如果现在求top10,以后又会去求top 100,那么B树和tree map会好 如果内存是有限的,表很大,那么使用min heap比较合适
inaadversity机器人#4 · 2014/10/2
建立map< id, name >,和map< id,score >,排序第二个,再找出名字?