Google研发面试题

試著忘記壹切 提交于 2019-12-02 03:57:12

今天很开心找到了一个很不错的研发面试题,很考验临时反应能力,特地拿出来和大家分享一下此题以及自己做该题的心得体会!!!

 题目:

总共有12个外表都一样的金属球,其中有11个球的重量是相同的,1个球的重量可能比其他11个球要重,也可能比较其他11个球轻,这个球称之为异常球,问:如何利用一个天平来称重三次找出这个异常球?

 

 

下面来讲解我的思路,希望大家拿出笔和纸。

首先我们将12个球分为三份,将球依次排好序号为1-12,如下:

A组选手:1,2,3,4         B组选手:5,6,7,8         C组选手:9,10,11,12

任意拿出两组放在天平两边,下面我们就以拿出AB比较。

【1】如果A == B,因为只有1个异常球,而A == B,则说明C组(9,10,11,12)异常球:

  紧接着从C组(异常组中)取出3个球,从正常组A或者B组中也取出3个球来进行比较,例如我们取出B组6,7,8【左边】    vs  C组9,10,11 【右边】

  如果天平平衡,则C组剩下的球就为异常球,这样就比较2次;

  如果天平不平衡,那就知道了异常球是重还是轻,

    那就从右边的三个球中再任取两个,放入天平中:

      如果天平平衡,剩下的球即为异常球;这样就比较2次

      如果不平衡,则可根据上面已经得出的结论:异常球是重还是轻的结论判断哪一个是异常球,这样比较3次

 

【2】如果A != B,因为只有1个异常球,则说明C组为标准球,异常球在A组或者B组中

  此时要分两种情况来分析:

  (1)左侧重右侧轻1,2,3,4 > 5,6,7,8(2)左侧轻右侧重1,2,3,4 < 5,6,7,8

========》

  (1)左侧重右侧轻1,2,3,4 5,6,7,8 【异常球可能是1,2,3,4重,或者5,6,7,8轻】

      然后我们比较16,7,859,10,11 ------>(9,10,11是正常球标准球)

  如果平衡,就可以说明,16,7,85 是标准球,结合上一个比较结果,可以得出的是异常球为2,3,4且为重球,这样从2,3,4里面找两个球比对一下即可,这样就比较3次;

  如果不平衡:

      左侧重:则1为异常重球,这样就比较2次

      左侧轻:异常球是6,7,8且为轻球,从三个球中选出两个再次称一次选择轻的即可,这样就比较3次

 

 

(2)左侧轻右侧重即1,2,3,4 < 5,6,7,8 解法同上面差不多,这个留给大家思考(思路一样,比较简单)

 

上面就是关于这个题目,我的思路和解法,欢迎大家指正!!!写完正好凌晨一点钟,晚上喽!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!