`
envy2002
  • 浏览: 151706 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

谷歌面试题一枚

 
阅读更多

机械开发代码久了,看了看一些面试题,可以活跃大脑,最近网上看了一题面试题。

 

 

 

Google面试题:找几百亿数据的中值
有几百亿的整数,分布的存储到几百台通过网络连接的计算机上,你能否开发出一个算法和系统,找出这几百亿数据的中值?就是在一组排序好的数据中居于中间的数。显然,一台机器是装不下所有的数据,也尽量少用网络带宽。

我的算法训练挺少的,只能自己谈些自己的心得。

1.获得题目,要仔细研读,迅速转化为数学模型。

混乱 -->有序 , 局部-->整体。

大问题化解为小问题来求解。

这时,我们的思路 大概就是出来了:如果每一台机器上的数据都是无序的,我们需要排序,排好序了从这些局部中

综合到整体, 然后获得一个正确答案。

2. 举例归纳。确立问题的边界。

1    4    5    6   15   44    55

3     7  11   12  13  18   35   

总的顺序为 1  3  4   5   6  7  11  12  13   15  18  35  44 55.
总共 14个数,中值为 11 12 。

直白的想法,这是归并排序吗,带宽不允许。

当然,如果题目变成了,求任意个位置的数值,那么归并排序就是一个完全的解空间。

现在题目很特殊,就是一个中值,我们要充分利用这个内涵。

3. 发掘约束,削减解空间。
观察样本,利用直觉,第一排中间是6,第二是12,小于6的全部抛弃, 大于12的全部抛弃。
中值在   15   44    55,  3     7  11   12中寻找,可以吗?

答案好像是可以的,假设中值在问号位置,
  *  ? *      15   44    55

3     7  11   12  13  18   35  

那么 ? < 6 <12, 那么 ? 排在整个序列中,那么它后面还有 4+4> (14/2)了,所以它的位置肯定不为中间,那么同样道理,中值也不肯出现在 下一排的 比较大的那部分,

反证法证完毕。

我们可以通过传送一个值,一下排除一半的数据,同样道理,我们继续总剩下的序列中,通过这个方式,

递归地排除好多数据,最后夹逼到中值,有点类似求极限,呵呵。

当然,这里有些小细节没有给出,如果几排中值相等如何处理等等,如果递归,我想这些聪明的读者已经想到,先到这里吧, 作为一个民工,我他妈的还要继续给老板创造价值,先把那80%不需要头脑的活干完再说。




分享到:
评论

相关推荐

    GOOGLE面试题集锦

    Google 面试题集锦就是一个集合了 Google 面试题的资源,涵盖了逻辑、数学、算法等多个方面的知识点。 在硅谷高科技公司的面试中,经常会出现一些经典的面试题,这些问题的目的是考察应聘者的思维能力、逻辑思维...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...

    牛客大数据面试题集锦+答案,共523道,46W+字。大厂必备

    以后会慢慢把Java相关的面试题、计算机网络等都加进来,其实这不仅仅是一份面试题,更是一份面试参考,让你熟悉面试题各种提问情况,当然,项目部分,就只能看自己了,毕竟每个人简历、实习、项目等都不一样。面试题...

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、...

    11谷歌面试题精讲

    11谷歌面试题精讲

    程序员面试题精选 C++ 算法 微软 google

    程序员面试题精选 C++ 算法 微软 google 程序员面试题精选 C++ 算法 微软 google

    java面试题java面试题java面试题

    java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题java面试题...

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...

    微软面试题解答google微软等大公司面试题

    微软公司面试人员的面试题解答,google微软等大公司面试题,软件架构师的设计。

    最新各大公司企业真实面试题-Java面试题

    本压缩包包含了一系列由IT资深专家单兴华整理的最新各大公司企业的真实Java面试题,旨在帮助求职者提升自己的技术水平和面试准备。 首先,我们来看"java练习题2.doc",这可能是针对基础语法和编程技巧的练习,涵盖...

    2023最新JAVA面试题集

    2023年最新版--Java+最常见的+200++面试题汇总+答案总结汇总 阿里百度美团面试题合集 大数据面试题 100道 多线程面试59题(含答案) 最新JAVA面试题总结之基础/框架/数据库/JavaWeb/Redis BIO,NIO,AIO,Netty面试题 ...

    mysql面试题一.zip

    mysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一.zipmysql面试题一...

    个人面试题总结(java,数据库,前端).zip

    所以面试题数量也是不少的,里面也包含了个人的一些总结和见解,比如说在集合方面的知识点有实现的各自特点,他们之间的区别,以及等等原理和实现的细节,还包含了java和前端的面试宝典,一个宝典大概有500页左右,

    ERP工程师面试题ERP工程师面试题

    ERP工程师面试题ERP工程师面试题ERP工程师面试题ERP工程师面试题

    15个Google面试题以及答案

    15个Google面试题以及答案。对于的相关职位产品经理、软件工程师等。

    前端面试题汇总前端面试题汇总前端面试题汇总

    前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端面试题汇总前端...

    (完整版)运维面试题(含答案).pdf

    (完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题(含答案).pdf(完整版)运维面试题...

    08-谷歌面试题-08-谷歌面试题

    谷歌面试题解析 本资源摘要信息中,我们将对谷歌面试题进行详细的解析和知识点总结。 知识点1:数据库基本操作 在面试题中,我们可以看到基本的数据库操作命令,如create database、use database、create table、...

    ajax面试题ajax面试题

    关于Ajax的常见面试题 1,Ajax和javascript的区别? javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。 Javascript是由...

    【BAT必备】zookeeper面试题

    【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】zookeeper面试题【BAT必备】...

Global site tag (gtag.js) - Google Analytics