谷歌面试题扔鸡蛋(这大概是互联网史上最难的两道智力题了)

第一题是谷歌的算法面试题,前两年用它K掉了很多成名人物。题目如下:

一幢 200 层的大楼,给你两个鸡蛋。如果在第 n 层扔下鸡蛋,鸡蛋不碎,那么从第 n-1 层扔鸡蛋,都不碎。这两只鸡蛋一模一样,不碎的话可以扔无数次。最高从哪层楼扔下时鸡蛋不会碎?问:提出一个策略, 保证能测出鸡蛋恰好会碎的楼层, 并使此策略在最坏情况下所扔次数最少。

谷歌面试题

第二题也是程序员的一道算法题:

600个人站一排,每次随机杀掉一个奇数位的人,几号最安全?(杀掉一个后,此人后面的人位数均会改变一位)

为了避免大家毫无思路,给大家稍微分析一下这两题的思路。

第一题:第一个鸡蛋用来试探, 只要它从 k 层楼扔下去没碎, 则目标就在[k+1, 200]之间了。

但一旦运气不好碎了, 对于已知的区间, 我们只能用剩下一个鸡蛋从小到大一层层试,因为我们要保证策略必须成功, 不能冒险了。提供一个思路是把200层分十层,每二十层扔一次,那么最差的结果是在200层,所以先第一个鸡蛋是10次碎,第二个20次碎,最差是30次。当然,这不是正确答案,也不是最优解。

第二题:很多人会回答2最安全,因为1不死,2永远不会死。当然,也有人说600。其实2相当于奶妈,1是他的肉盾,600相当于刺客,自带50%闪避,因为前面无论谁死,他都会改变状态。所以,谁最安全呢?

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友