腾讯大楼抛玻璃球问题

问题

腾讯大厦有39层,你手里有两颗一抹一眼的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。大厦有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。

分析

咱们先不论腾讯大厦具体为多少层。假设大楼为 N 层,那么 F(N)N 层大厦最坏情况的最小值。

先假设一下,在第 10 层进行了抛球:

  • 碎了,那么寻找临界楼层,最坏情况下只需要从 1 - 9 逐一遍历,也就是 10 次。
  • 没碎,那么寻找临界楼层,相当于转换为 F(N - 10) + 1 。其中 1 为本次。

也就是说,第 10 层的最坏情况为 max(10, F(N - 10) + 1)

那么 F(N) = min{ max(1, F(N - 1) + 1), max(2, F(N - 2) + 1), max(3, F(N - 3) + 1), …… , max(N - 1, F(1) + 1)}

有了以上这个状态转移方程,就可以采用动态规划将其实现。

实现

class Solution {public static void main(String[] args) throws IOException {int N = 0;Scanner scanner = new Scanner(System.in);while (N < 1) {N = scanner.nextInt();}int[] dp = new int[N + 1];dp[0] = 0;dp[1] = 1;for (int i = 2; i <= N; ++i) {int min = i;for (int j = 1; j < i; ++j) {int tmp = Math.max(j, dp[i - j] + 1);if (tmp < min) {min = tmp;}}dp[i] = min;}System.out.println(dp[N]);}
}

实验结果为:

当 N = 39 时,最多只需要抛 9 次。
当 N = 100 时,最多只需要抛 14 次。

腾讯大楼抛玻璃球问题相关推荐

  1. [益智]:从高楼抛玻璃球,用什么最优策略得到临界层?

    题目描述 有一栋100层高的大楼,给你两个完全相同的玻璃球.假设从某一层开始,丢下玻璃球会摔碎.那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层??? 题目解答 方法一: 只用1个球就 ...

  2. 第四冠!腾讯AI「绝艺」斩获世界智能围棋公开赛冠军

    导语:腾讯围棋AI「绝艺」世界大赛再夺金,三年四冠,砥砺前行! 中国围棋协会主办的2019「中信建投证券杯」世界智能围棋公开赛今天在山东日照落幕.由腾讯 AI Lab 研发.担任中国国家围棋队的训练专 ...

  3. 腾讯胡珀:数字时代,每个人的安全都值得被守护

    导读:12月8日,在深圳举行的T-DAY2018腾讯用户开放日上,腾讯安全平台部应用运维安全中心总监兼Tencent Blade Team负责人胡珀亮相首场workshop,让用户在体验各种黑科技的同 ...

  4. 再三年!腾讯AI「绝艺」与中国国家围棋队续约

    感谢阅读腾讯AI Lab微信号第94篇文章.本文将介绍「绝艺」与中国国家围棋队续约的情况. 腾讯AI Lab研发的围棋AI「绝艺」昨日与中国国家围棋队续约.在过去的两年里陪伴国手们横扫棋坛的世界顶级围 ...

  5. 摘录与评论·《致我们终将逝去的青春》

    其实如果就上一篇,<青春是黄鹤>你说你没看爽,这只是因为,我总结出了博客观众的习惯,不喜长文,只能写在八百字就可以了结了,否则,长篇累牍,谁爱观看啊.因此拆分为两部分,上部分为<致我 ...

  6. 互联网“高薪榜”曝光,物联网将接棒?

    "路透社报道,华为计划在今年提高员工内部股票股息,增幅为3%,总价值为数十亿美元.2017年,华为向员工发放的股息红利便高达168亿元,占公司净利润的35%,今年分红则再创新高." ...

  7. php开发实例大全pdf百度云盘_互联网大厂 主要使用哪些开发语言

    1.百度 百度大楼 百度公司作为一家以搜索起家的互联网公司.曾经的互联网老大,曾几何时也是市值第一.现在很多时候被调侃成为其他公司的市值计量单位.平心而论作为一名程序员去看,百度技术还是行业第一梯队. ...

  8. 专访《王者荣耀》团队 附天美L1工作室照片

    <王者荣耀>的注册用户已超过2亿,前段时间又荣登全球手游综合收入榜冠军,堪称全球最火游戏.近日,成都商报记者来到坐落于四川成都天府三街上的天美L1工作室,分管<王者荣耀>技术. ...

  9. 2020年最新一二三线互联网公司出炉,附校招和社招薪资行情

    一线互联网公司:阿里,腾讯 阿里巴巴 阿里巴巴作为最出名的互联网大厂,其生态大到你想象不到,集团在马爸爸功成身退后,由逍遥子带领,不断开疆拓土,疫情期间,阿里云在王坚博士的带领下市值也冲出天际,归属阿 ...

最新文章

  1. ASP.NET结合COM组件发送Email
  2. 奇偶个数_只愿与一人十指紧扣_新浪博客
  3. linux 更新yum源 改成阿里云源
  4. hello.cpp 第一个C++程序(本博客没有特指都是以QT测试)
  5. C#趣味程序---车牌号判断
  6. anroid 内存溢出 Bitmap OutOfMemoryError
  7. python的递归算法学习(1)
  8. [Unity] GameFramework 学习记录 4:第三人称控制器
  9. 如何设置计算机网共享文件夹,局域网内如何设置共享文件夹呢
  10. CentOS GRUB引导错误无法进入系统解决办法
  11. 立即更新 Chrome 浏览器!这个 0day 已遭在野利用
  12. 安装SQL Server 2012遇到“需要更新的以前的Visual Studio 2010实例.”
  13. 计算机硬件各组成部分的工作原理,计算机硬件组成及工作原理
  14. 计算机中丢失xvidcore.dll,win7系统提示“xvidcore.dll not found”的解决方法
  15. WPS如何按单元格背景颜色求和
  16. 报纸样式网页html css,报纸杂志HTML模板
  17. jbox ajax,JBox演示30种不同的调用方法
  18. oracle 判断数字是否连续,oracle中 如何 判断 表中字段是否为 连续的数字,例如‘3333333333',‘44444444’...
  19. win10重置失败,重装系统踩坑
  20. Can‘t read file : End of file found 文件:txn_current、current svn无法正常读取文件

热门文章

  1. 设计模式(二十二)—— 策略模式(定义、案例分析、特点、缺点)
  2. 大学,我是怎么边学编程边赚钱的?
  3. [BZOJ3786]星系探索
  4. 计算机网络(四)—— 网络层(3):IPv4地址
  5. 中国痤疮药品市场现状研究分析与发展前景预测报告(2022)
  6. 杨大川:未来BI重点回归客户端
  7. 俄罗斯国家黑客组织 Gamaredon的成员身份和录音曝光(附视频)
  8. 解决Unity3D中“There is no 'Renderer' attached to the game object”问题
  9. detour(detoured)
  10. vSAN 6.6十大特性的文档和视频