题目链接:458. 可怜的小猪 - 力扣(LeetCode) (leetcode-cn.com)
难度:Hard
数学题。考虑有 只猪, 个桶,最少需要检测几次?
: 逐次检查每个桶,最少需要 次。
: 把桶按正方形排列,共 行,每行至多 列,两只猪同时分别逐行逐列检查,最少需要
: 把桶按正方体排列,共 层,每层至多 行,每行至多 列。三只猪同时分别逐层逐行逐列检查,最少需要
以此类推,有 只猪, 个桶,最少需要检测 次。
通过上述推导,有 个桶,最多 次检测机会的情况下,最少需要 只猪。
class Solution {
public:
int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
return ceil(log(buckets) / log(minutesToTest / minutesToDie + 1));
}
};