上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页
摘要: 一、什么是ElasticSearch ElasticSearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。ElasticSearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。核心思想就是在多台机器上启动多个 es 进程实例,组成了一个 es 集群 阅读全文
posted @ 2020-03-24 23:20 Qmillet 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 题目描述 有 20 个数组,每个数组有 500 个元素,并且有序排列。如何在这 20*500 个数中找出前 500 的数? 解答思路 对于 TopK 问题,最常用的方法是使用堆排序。对本题而言,假设数组降序排列,可以采用以下方法: 首先建立大顶堆,堆的大小为数组的个数,即为 20,把每个数组最大的值 阅读全文
posted @ 2020-03-24 21:46 Qmillet 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 题目描述 有 10 个文件,每个文件大小为 1G,每个文件的每一行存放的都是用户的 query,每个文件的 query 都可能重复。要求按照 query 的频度排序。 解答思路 如果 query 的重复度比较大,可以考虑一次性把所有 query 读入内存中处理;如果 query 的重复率不高,那么可 阅读全文
posted @ 2020-03-24 21:43 Qmillet 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 题目描述 从 5 亿个数中找出中位数。数据排序后,位置在最中间的数就是中位数。当样本数为奇数时,中位数为 第 (N+1)/2 个数;当样本数为偶数时,中位数为 第 N/2 个数与第 1+N/2 个数的均值。 解答思路 如果这道题没有内存大小限制,则可以把所有数读到内存中排序后找出中位数。但是最好的排 阅读全文
posted @ 2020-03-24 21:42 Qmillet 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定 40 亿个不重复的没排过序的 unsigned int 型整数,然后再给定一个数,如何快速判断这个数是否在这 40 亿个整数当中? 解答思路 方法一:分治法 依然可以用分治法解决,方法与前面类似,就不再次赘述了。 方法二:位图法 40 亿个不重复整数,我们用 40 亿个 bit 来表 阅读全文
posted @ 2020-03-24 21:25 Qmillet 阅读(729) 评论(1) 推荐(0) 编辑
摘要: 题目描述 已知某个文件内包含一些电话号码,每个号码为 8 位数字,统计不同号码的个数。 解答思路 这道题本质还是求解数据重复的问题,对于这类问题,一般首先考虑位图法。 对于本题,8 位电话号码可以表示的号码个数为 108 个,即 1 亿个。我们每个号码用一个 bit 来表示,则总共需要 1 亿个 b 阅读全文
posted @ 2020-03-24 21:05 Qmillet 阅读(1413) 评论(0) 推荐(0) 编辑
摘要: 题目描述 搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过 255 字节。 假设目前有 1000w 个记录(这些查询串的重复度比较高,虽然总数是 1000w,但如果除去重复后,则不超过 300w 个)。请统计最热门的 10 个查询串,要求使用的内存不能超过 1G 阅读全文
posted @ 2020-03-24 20:50 Qmillet 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在 2.5 亿个整数中找出不重复的整数。注意:内存不足以容纳这 2.5 亿个整数。 解答思路 方法一:分治法 与前面的题目方法类似,先将 2.5 亿个数划分到多个小文件,用 HashSet/HashMap 找出每个小文件中不重复的整数,再合并每个子结果,即为最终结果。 方法二:位图法 位图 阅读全文
posted @ 2020-03-24 20:43 Qmillet 阅读(706) 评论(0) 推荐(1) 编辑
摘要: 题目描述 有一个 1GB 大小的文件,文件里每一行是一个词,每个词的大小不超过 16B,内存大小限制是 1MB,要求返回频数最高的 100 个词(Top 100)。 解答思路 由于内存限制,我们依然无法直接将大文件的所有词一次读到内存中。因此,同样可以采用分治策略,把一个大文件分解成多个小文件,保证 阅读全文
posted @ 2020-03-24 20:22 Qmillet 阅读(1333) 评论(1) 推荐(1) 编辑
摘要: 题目描述 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。 解答思路 每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。 5,000,000,000 * 64B ≈ 5GB * 阅读全文
posted @ 2020-03-24 17:31 Qmillet 阅读(1301) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 19 下一页