九章算法面试题21 寻找最近单词对
来源:互联网 发布:大数据分析的目标市场 编辑:程序博客网 时间:2024/06/11 07:14
九章算法官网-原文网址
http://www.jiuzhang.com/problem/21/
题目
初阶:有一篇包含N个单词的文章和M个单词对,对于每个单词对,如果他们在文章中都出现了,求出他们在文章中的最近距离。例如文章为:ABBCABC,那么对于单词对(A,C)的最近距离是1(最后的ABC,A必须在C的前面)
进阶:假设N和M都是海量数据,有什么好的方法可以优化?
解答
初阶:扫描文章的单词序列,对于单词对(W1,W2)记录最后一次出现W1的位置P1,当扫描到W2时,计算当前位置和P1的距离,保存下最优的方案。
进阶:使用Map-Reduce对各个单词及其位置建立索引。对于一次请求中的单词对(W1,W2)在索引中获得位置列表,遍历两个列表得到结果。如果两个列表的长度相差不大,则线性扫描,如果相差很大,则使用二分法查找。
面试官角度
本题的初阶考察点是编程实现。进阶问题考察点主要是“索引“ ”MapReduce“和在两个数组中招最近元素时,根据数组的长度差距来选择使用线性扫描还是二分查找。
0 0
- 九章算法面试题21 寻找最近单词对
- 九章算法面试题20 寻找重复的URL
- 九章算法面试题79 寻找峰值
- 九章算法面试题25 反转单词序列
- 九章算法面试题56 最近公共祖先
- 九章算法面试题45 寻找最大的储水容器
- 九章算法面试题41 判断单词的包含关系
- [经典面试题][百度]寻找兄弟单词
- 九章算法面试题3 找坏球
- 九章算法面试题28 链表找环
- 九章算法面试题71 平方根
- 九章算法面试题74 中位数
- 何海涛算法面试题感悟之九:寻找链…
- 九章算法 | Facebook 面试题 : Backpack VI 背包算法
- iOS 面试题(1.)寻找最近公共View
- 面试题之九章算法 字符串编辑距离
- 九章算法——面试题思路
- 九章算法面试题1 落单的数
- linux create ftp server
- 半结构化数据
- Android Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- 当今数码印刷的五大技巧
- 九章算法面试题21 寻找最近单词对
- 数据泵导入时报错ORA-39083: Object type TABLE:"JDIC"."CLCP" failed to create with error:
- log4j日志按分模块和分级输出到不同的文件中去
- 开发拾遗篇:安装VS2015
- (转载)C++中的Preprocess Compilation Linking
- maven常见错误
- MyEclipse环境下如何采用Maven导入ojdbc14.jar和ojdbc6.jar
- MFC获取电脑文件夹下文件的名称,类型,大小,后缀(附源码)
- php-fpm.conf配置信息