458. poor pigs
来源:互联网 发布:淘宝店流量是什么意思 编辑:程序博客网 时间:2024/06/13 21:21
先用下面矩阵模拟一下:
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
MinutesToTest:60min
MinutesToDie:15min
NumberToPigs:2 pigs
现在有些理解这道题了。
1. T = MinutesToTest/MinutesToDie + 1 说的是 rounds ,也就是测试轮数,同时可以抽象理解成N维空间里每个维度容纳的buckets数量。
2. pigs说的就是几只猪同时去测试,可以理解成像多线程似的,多条路一起走。同时可以抽象理解成N维空间里的维度,也就是这个N值。
3. 这样就好理解了,有几只猪,就是几条线程同时去测试。有几轮,就是去跑多少次。这样就是T的pigs幂,就是有pigs只猪并测试T轮时,可检测的最大buckets数量。
【代码一】:
if(1==buckets) return 0;int rounds = minutesToTest / minutesToDie +1;int pigs = 0;long num = 1;while (num < buckets) { num *= rounds; pigs++;}return pigs;
这个比较容易理解,判断num啥时候大于buckets就ok啦。
【代码二】:
if(1==buckets) return 0;int rounds = minutesToTest / minutesToDie +1;return log(buckets-1) / log(rounds) + 1;
这个return后面的式子说明一下,设需要猪的数量为x,那么
由于对数函数的特性,见下图,这里取的a=10,所以lg是个单增的函数。同时和buckets都是正数,这样就可以用lg啦。
将两边取对数,得到:
化简得:
因为minutesToTest / minutesToDie一定大于等于1,
所以rounds大于等于2,
所以一定大于0
两边同时除以,得:
因为x是整数,所以可取的最小值为右侧计算结果的取整再加1。
0 0
- LeetCode 458. Poor Pigs
- 458. Poor Pigs
- 【leetcode】458. Poor Pigs
- Leetcode 458. Poor Pigs
- 458. Poor Pigs
- 458. Poor Pigs
- 458. poor pigs
- [Leetcode] 458. Poor Pigs
- leetcode 458. Poor Pigs
- LeetCode 458.Poor Pigs
- 458. Poor Pigs
- LeetCode 458.poor pigs
- leetcode 458. Poor Pigs
- leetcode 458. Poor Pigs
- leetcode- Add to List 458. Poor Pigs
- [LeetCode]Poor Pigs
- [LeetCode] Poor Pigs
- poor
- free命令中cached和buffers的区别
- Android RecyclerView添加头部与尾部
- 使用cxf整合spring出现Cannot create URL for this address
- 用 LDA 做主题模型:当 MLlib 邂逅 GraphX
- android fragment 标签使用
- 458. poor pigs
- iframe与主框架跨域访问
- Python——os模块
- 在开发中经常用到的一些sql语句,但相对比较复杂一些的
- 66. Plus One
- 【模拟】洛谷 P1423 小玉在游泳
- Spark性能优化指南——基础篇
- 洛谷p3764签到题3
- [转].NET 4.5+项目迁移.NET Core的问题记录 HTTP Error 502.5