6.5 There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. If it's dropped from any floor below, it will not break. You're given two eggs. Find N, while minimizing the number of drops for the worst case

这道题说有100层楼,从N楼开始扔鸡蛋会碎,低于N楼扔不会碎,现在给我们两个鸡蛋,让我们找到N,并且最小化最坏情况。

因为只有两个鸡蛋,所以第一个鸡蛋应该是按一定的间距扔,比如10楼,20楼,30楼等等,比如10楼和20楼没碎,30楼碎了,那么第二个鸡蛋就要做线性搜索,分别尝试21楼,22楼,23楼等等直到鸡蛋碎了,就能找到临界点。那么我们来看下列两种情况:

1. 假如临界点是9楼,那么鸡蛋1在第一次扔10楼碎掉,然后鸡蛋2依次遍历1到9楼,则总共需要扔10次。

2. 假如临界点是100楼,那么鸡蛋1需要扔10次,到100楼时碎掉,然后鸡蛋2依次遍历91楼到100楼,总共需要扔19次。

所以上述方法的最坏情况是19次,那么有没有更少的方法呢,上面那个方法每多扔一次鸡蛋1,鸡蛋2的线性搜索次数最多还是10次,那么最坏情况肯定会增加,所以我们需要让每多扔一次鸡蛋1,鸡蛋2的线性搜索最坏情况减少1,这样恩能够保持整体最坏情况的平衡,那么我们假设鸡蛋1第一次在第X层扔,然后向上X-1层扔一次,然后向上X-2层扔,以此类推直到100层,那么我们通过下面的公式求出X:

X + (X-1) + (X-2) + ... + 1 = 100 -> X = 14

所以我们先到14楼,然后27楼,然后39楼,以此类推,最坏情况需要扔14次。

[CareerCup] 6.5 Drop Eggs 扔鸡蛋问题相关推荐

  1. 254. Drop Eggs (扔鸡蛋经典题)

    Drop Eggs 中文English There is a building of n floors. If an egg drops from the k th floor or above, i ...

  2. java动态规划鸡蛋问题_教你彻底理解动态规划——扔鸡蛋问题 Drop Eggs2

    问题 有一个n层的建筑.如果一个鸡蛋从第k层及以上落下,它会碎掉.如果从低于这一层的任意层落下,都不会碎. 有m个鸡蛋,用最坏的情况下实验次数最少的方法去找到k, 返回最坏情况下所需的实验次数. 样例 ...

  3. 彻底搞懂-扔鸡蛋问题-方程-动态规划

    1.题目: 2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度,比如鸡蛋在第9层没有摔碎而在第10层摔碎了,那么鸡蛋不会摔碎的零界点就是9层,如何用最少的尝试次数,测试出鸡蛋不会摔碎的临界点? 2. ...

  4. 扔鸡蛋问题-方程-动态规划

    参考:程序员小灰 https://blog.csdn.net/weixin_40564421/article/details/78988078 题目:2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬 ...

  5. Coursera Algorithms week1 算法分析 练习测验: Egg drop 扔鸡蛋问题

    题目原文: Suppose that you have an n-story building (with floors 1 through n) and plenty of eggs. An egg ...

  6. dp 扔鸡蛋_使用动态编程(DP)的鸡蛋掉落问题

    dp 扔鸡蛋 Problem statement: You are given N floor and K eggs. You have to minimize the number of times ...

  7. 总结 扔鸡蛋问题——1

    前言 最近我在知乎上看到了一个扔鸡蛋的问题[1],问题描述如下.在网上学习后,将相关知识整理如下. 正文 问题 有一个 n 层的建筑.如果一个鸡蛋从第 k 层及以上落下,它会碎掉.如果从低于这一层的任 ...

  8. 扔鸡蛋问题具体解释(Egg Dropping Puzzle)

    经典的动态规划问题,题设是这种: 假设你有2颗鸡蛋,和一栋36层高的楼,如今你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该怎样用最少的測试次数对于不论什么答案楼层都可以使问题得到解决. 假设你从某一层楼 ...

  9. 算法第四版扔鸡蛋问题

    本题来源于算法第四版1.4.25.1.4.26. 同时好像记得看过的腾讯面经里也问到过类似题目,因此觉得有必要仔细做一下. 题目如下: 一幢 100 层的大楼,给你两枚鸡蛋.假设,在第 n 层扔下鸡蛋 ...

最新文章

  1. Java学习之switch语句
  2. 微信小程序tabBar不显示的问题描述解决
  3. JDBC—02—JDBC的使用;
  4. python wxpython backend wxagg_[宜配屋]听图阁
  5. [置顶] 基于遗传算法求解车辆路径问题
  6. 小汤学编程之JAVA基础day15——枚举、注解和Properties
  7. 火狐与IE兼容性总结(一)
  8. chrome.storage和window.localStorage的区别
  9. html5张图片响应式自动轮播代码,利用jQuery实现响应式Banner图片轮播代码
  10. 统信UOS安装flash浏览器插件
  11. 分享一下Java从基础到进阶各阶段视频教程
  12. word去掉万恶的域代码
  13. 阿里云智能语音交互服务-录音文件识别采样率不支持-UNSUPPORTED_SAMPLE_RATE 解决方案
  14. 如何用java解压文件_如何用Java解压缩文件?
  15. python 英语分词_python实现英文文本分词
  16. c语言打印三角形//洛谷
  17. python中交集并集用什么符号表示_python交集和补集的符号_python数组并集交集补集...
  18. python自定义函数中return可以返回多个值_python函数return返回多个值
  19. java批量添加文件到ZIP压缩包并下载,文件名相同导致的异常
  20. 使用Trinamic TMC2300步进驱动器做一个迪斯科灯项目

热门文章

  1. C语言萨博,力求打造“国民奔驰C” 源于萨博基因的绅宝智道到底有何能耐?
  2. JSP期末狂刷之单选题
  3. 中国智能制造软件路在何方?
  4. bootstrap-suggest 源代码修改 实现二级联动
  5. 终于知道 Shell 中单引号双引号的区别了
  6. w8如果找到我的计算机快捷键,Win键的存在感都找回来了!Win8常用快捷键一览
  7. php仿天天p图,天天p图怎么样 天天P图拼图及抠图使用教程
  8. 单片机设计_贪吃蛇游戏(AT89C51)
  9. 简化版单例,使创建的类对象无论重新定义多少次都唯一
  10. 集线器、交换机和路由器通俗点的解释