leetcode458. 458. 可怜的小猪 python

题目描述:

leetcode458. 458. 可怜的小猪 python_第1张图片

leetcode458. 458. 可怜的小猪 python_第2张图片 

 题解:

参考leetcode评论区

以示例1为例,minutestodie=15 minutestotest=60,在test时间内:

一只小猪可以喝四桶水,因此可以验证的水桶数量为5(如果前四桶都没有死,说明第五桶有毒)。

两只小猪情况如下:

一只小猪喝第i行,一只小猪喝第i列:

如果两只小猪都死亡,则(i,i)位置有毒。

如果第一只小猪死亡,第二只没有,说明有毒的在第i行,第i列之后(因为i之前被这种方式验证过,小猪没有死,说明没有毒)

如果有毒的桶的位置为(3,5):

1.第一只小猪喝第1行,第二只喝第1列,存活,第一行第一列排除。

2.第一只小猪喝第2行,第二只喝第2列,存活,第二行第二列排除。

3.第一只小猪喝第三行,第二只喝第三列,第一只死亡,第二只存活,说明有毒位置在(3,4)(3,5)

4.第二只小猪喝第四列,存活,排除(3,4),有毒位置在(3,5)

 以此类推,pignum只小猪,可以验证的桶的数量为(minutestotest/minutestodie)^pignum

class Solution(object):
    def poorPigs(self, buckets, minutesToDie, minutesToTest):
        minpignum = 0
        while (minutesToTest/minutesToDie+1)**minpignum 
  

leetcode458. 458. 可怜的小猪 python_第3张图片

 其他思路:力扣

用编码的思路解决。

你可能感兴趣的:(leetcode,python,算法)