[LeetCode] Poor Pigs

Posted immjc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] Poor Pigs相关的知识,希望对你有一定的参考价值。

There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. They all look the same. If a pig drinks that poison it will die within 15 minutes. What is the minimum amount of pigs you need to figure out which bucket contains the poison within one hour.

Answer this question, and write an algorithm for the follow-up general case.

Follow-up:

If there are n buckets and a pig drinking poison will die within m minutes, how many pigs (x) you need to figure out the "poison" bucket within p minutes? There is exact one bucket with poison.

这是一个数学问题,给定n个水桶,其中只有1个含有毒药,假设猪喝了有毒的水会在m分钟后死亡,现在你有p分钟去实验,要求使用最少的猪x去检测出有毒药的桶。

首先计算出做实验的次数t=p/m, 1只猪可以检测出t + 1个水桶中是否含有毒药。2只猪可以检测出(t + 1) ^ 2个水桶中是否含有毒药。则按照这个思路求解即可。

class Solution {
public:
    int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
        int pigs = 0;
        int times = minutesToTest / minutesToDie + 1;
        while (pow(times, pigs) < buckets)
            pigs++;
        return pigs;
    }
};
// 0 ms

 

以上是关于[LeetCode] Poor Pigs的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-458-Poor Pigs

leetcode 458. Poor Pigs

[LeetCode] Poor Pigs 可怜的猪

[LeetCode&Python] Problem 458. Poor Pigs

LeetCode 458. Poor Pigs

Leetcode - 458 Poor Pigs