作家
登录

妙解谷歌压箱底面试题:如何正确的从楼上抛鸡蛋

作者: 来源: 2018-01-03 00:15:19 阅读 我要评论

图7:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

再一次的,我们方才授权给了bestNextStep 函数来计算“下一层的最优解”。这个函数很好的魏我们指清楚明了下一步的偏向,我们可以简单地定义它:当只有二层或更少的楼层待考验,那我们会大年夜第一层扔出鸡蛋,不然我们须要检查所有备选项以找到最优解。

下面是具体履行步调:

图8:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

再一次的,我们方才授权给了bestNextStep 函数来计算“下一层的最优解”。这个函数很好的魏我们指清楚明了下一步的偏向,我们可以简单地定义它:当只有二层或更少的楼层待考验,那我们会大年夜第一层扔出鸡蛋,不然我们须要检查所有备选项以找到最优解。

下面是具体履行步调:

图8:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

不然,我们大年夜33+ (67 *1/3) =55层楼扔,如不雅鸡蛋破损,我们再来竽暌姑第二颗鸡蛋检查34层到55层。

留意,这个函数应用了maxThrows 函数,所以涉及到了轮回。这不是个问题,因为当bestNextStep 调用到maxThrows时,它老是调用一个小于floorsLeft 的数(因为nextFloor 老是大年夜于0)。我们调用这个函数之前先加一些缓冲,用于加快这些运算。

图10:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

起首,我们看看它是否返回和之前计算雷同的结不雅。

图11:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

结不雅看着不错,我们再看看下面几步:

图12:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

结不雅:

9, 22, 34, 45, 55, 64, 72, 79, 85, 90, 94, 97, 99, 100,

恰是我们计算的结不雅!赞!

图13:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋

拓展

如今我们有了一套可以解决很多类似问题的不错的算法。比如说,我们可以稍微修改一下来计算最随机的情况下的扔掷次数。我们也可以看看这一最小数值若何根据建筑高度不合而有所差别。

下图答复了以汕9依υ?题:

图14:妙解谷歌压箱底面试题:若何精确的大年夜楼上抛鸡蛋
(该图展示了最坏巧桨的起码扔掷次数,纵轴是楼层数,横轴是扔掷次数,曲线代表最优扔掷次数。)

结论

你如今对于谷歌的面试预备更充分了,但更重要的是,你比拟以前更具备算法思惟。这个算法出现了一个很好的,高效型的办法。还可应用于解决我们每日工作中典范多问题。



  推荐阅读

  大数据做白血病基因配比 提高10倍效率

【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? “以前做白血病基因配比,一小我一下昼才能做七八个,如今我们在数据库做配比只要3分钟就能完成这个活。>>>详细阅读


本文标题:妙解谷歌压箱底面试题:如何正确的从楼上抛鸡蛋

地址:http://www.17bianji.com/lsqh/40182.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)