算法趣题 : 检测玻璃瓶的强度

Description

对玻璃瓶做强度测试,设地面高度为0,从0 向上有n 个高度,记为1,2,…,n,其中
任何两个高度之间的距离都相等。如果一个玻璃瓶从高度i 落到地上没有摔破,但从高度i+1
落到地上摔破了,那么就将玻璃瓶的强度记为i

Question :

1) 当玻璃瓶的数量足够多时,需要测试多少次??【Hint:二分测试,肯定O(logn)的】

2) 当玻璃瓶的数量为 K (K>=1) 时,需要测试多少次呢?

Solution:

1)的解决方案非常清晰,用二分检测就可以了;

但我们可以附加一个问题: 二分检测最多会摔坏多少个瓶子呢? 很自然,最多摔坏 logn个瓶子.

那么,给出2)的解答时,我们有个隐含的假设: K <logn ;否则,直接二分检测就可以了.

2) solution : 【HInt: 2个瓶子时效率是sqrt(n)!

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值