leetcode:458. 可怜的小猪(困难,数学)

題目:

在这里插入图片描述

分析:

看完題,就想起來算法课上的一道题。
利用二进制位来解决问题。
在这里插入图片描述
时间有什么用,我们假设32瓶,时间允许两次,那么按4只小猪来,第一次16瓶,如果有毒,那么判断出来了,如果没死,继续用。
所以多一次实验可以少一位,即少一只小猪。

错误。

可实验次数+1
作为log的底。

以2次实验为例,2+1=3
第一次喝3进制中的1位置,有死的,直接得出,没有的话,第二次喝三进制中的2位置。
在这里插入图片描述
确实挺奇妙的,我只能说记住吧!

代碼:

class Solution {
public:
    int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
        if(buckets==1) return 0;
        int c=minutesToTest/minutesToDie+1;
        return (int)(log(buckets-1)/log(c))+1;
    }
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值