leetcode 458. 可怜的小猪 及 题目的不严谨

2021.11.25LeetCode每日一题——可怜的小猪 目录 可怜的小猪 描述 示例 1 示例 2 示例 3 提示 方法一:动态规划 方法二:数学 可怜的小猪 描述 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。 为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。 不幸的是,你只有minutesToTest 分钟时间来确定哪桶液体是有毒的。 喂猪的规则如下: 选择若干活猪进行喂养 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。 小猪喝. 阅读详情

这道题很有意思,感觉是之前老鼠喝毒药的进阶版,增加了个时间属性,不错解法差不多,主要是看看在测试时间内,有多少批猪死亡,例如:60分钟内,死亡时间为15,则增加了4个状态,则变成了5个状态,所以就要对log(1000) / log(5)上取整,有这么多头猪就可以了。

class Solution {
public:
    int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
        if(minutesToTest < minutesToDie)
            return 0;
        return ceil(log(buckets) / log(floor(minutesToTest/minutesToDie) + 1));
    }

};


题目不严谨,有可能只需一只猪就可以判断1000个桶

为什么要规定每15分钟猪才能喝一次水?作为一只小猪猪难道不可以每一分钟喝水?

那么由5个状态就变成46个状态,我真是一个天才,哈哈



就如上图所示,其他人陷入思维误区,以为把60分钟分为4个15分钟,上图红色所示,我们16分钟那批猪如果检查出毒药了,那肯定是1分钟那批桶有问题,自查看1分钟那批桶的编号即可,依次类推,就可以增加了无数个时间状态,其实可以分成无数个15分钟,涉及到精度的问题,暂且规定1分钟为一批猪,则可以分成60-15个状态,即45个状态,和之前的那个二进制状态,一共46个状态。那么就是log(1000) / log(46) ,上取整,为2只猪。

如果你手速很快,猪可以一秒喝一口水的话,那就有45*60+1个状态,则需要1只猪就可以了。


vivado 工程修改芯片型号 vivado工程芯片与实际板子不匹配时,需要修改工程的芯片型号,并对原工程的ip进行同步更新,之后生成新的bit文件,烧录到板子中 阅读详情

相关推荐

从零理解域随机化:通过Isaac Lab的events.py掌握Sim-to-Real关键技术

本文深入解析域随机化技术如何通过Isaac Lab的events.py实现Sim-to-Real迁移,提升机器人策略在真实世界的鲁棒性。从刚体属性到环境条件的系统级随机化,详细介绍了工程实践中的关键参数配置与调试技巧,帮助开发者有效缩小仿真与现实的差距。

weixin_29062613的博客 260

Leetcode458-可怜的小猪

题目描述 有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 思路 先考虑有一头猪的情况:60分钟的话,它最多可以判断出 60/15+1 = 5只水桶中的毒药桶。每隔十五分钟喝一次水,喝四次,如果幸运的话活了下来,就是最后一桶。注:题目中...

yangke 547

第10章:位同步与Gardner环路(1)

第10章(1)内容如下:一、位同步与载波同步的区别1、采样时钟相位偏差的影响2、采样时钟频率偏差的影响二、Gardner环路算法与插值方法1、插值滤波器2、Gardner误差检查算法三、Gardner环路中环路滤波器与数字振荡器设计1、环路滤波器2、数控振荡器(NCO)四、Gardner环路的可运行MATLAB代码五、参考资料六、致谢 最近搞懂了Gardner环路的一些知识,于是更新第10章——位同步。 如果你稍不留意的话,这可能是你在网上能看到的介绍Gardner环路及其MATLAB仿真最详细的一篇文章了

weixin_44283855的博客 1万+

leetcode | go | 第458题 | 可怜的小猪

可怜的小猪

iCling的博客 555

保姆级图解:HKMG工艺中的‘覆盖层’(Cap Layer)到底怎么调阈值电压?

本文深入解析了HKMG工艺中覆盖层(Cap Layer)如何精准调控阈值电压的关键技术。通过原子级精度的ALD工艺和材料选择,覆盖层在半导体制造中扮演着隐形调节器的角色,直接影响晶体管的电气特性。文章详细介绍了La2O3和Al2O3等材料的特性对比、ALD工艺的原子级控制,以及实战调试中的关键步骤和问题排查方法。

weixin_27032989的博客 496

pytorch-cifar100学习资料汇总 - 基于PyTorch的CIFAR-100图像分类实践

pytorch-cifar100是一个基于PyTorch实现CIFAR-100数据集图像分类的开源项目。该项目实现了多种经典的深度学习网络模型,如ResNet、DenseNet、VGG等,为开发者提供了在CIFAR-100数据集上进行图像分类实验的代码范例。pytorch-cifar100项目为我们提供了在CIFAR-100数据集上进行图像分类实验的完整代码实现。无论你是想要学习PyTorch的使用,还是研究不同网络模型在CIFAR-100上的表现,这个项目都是一个很好的起点。

helloaiworld的博客 1123

[leetcode]——哪桶水有毒

有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。 如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 进阶:假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出“有毒”水桶?n只水桶里有且仅有一只有毒的桶。** 分析 你现在拥有一头猪,这头猪去喝水,如果他喝...

lucky52529的博客 3655

AutoSAR MemMap模块详解及使用注意事项

在本文中,我们将深入探讨MemMap模块的实例解析,并介绍在使用该模块时需要注意的一些事项。在上述代码中,我们使用了MEMMAP_START_SEC_VAR_32BIT和MEMMAP_START_SEC_CODE来定义MemMap区域的起始位置,使用MEMMAP_STOP_SEC_VAR_32BIT和MEMMAP_STOP_SEC_CODE来定义MemMap区域的结束位置。1.合理划分MemMap区域:根据实际需求,合理划分MemMap区域,将不同类型的变量放置在不同的区域中,以便于管理和访问。

weixin_50547796的博客 2533

【微软算法面试高频题】可怜的小猪

微软和谷歌的几个大佬组织了一个面试刷题群,可以加管理员VX:sxxzs3998(备注优快云),进群参与讨论和直播 1. 题目 有 buckets 桶液体,其中正好有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有 minutesToTest 分钟时间来确定哪桶液体是有毒的。 喂猪的规则如下: 选择若干活猪进行喂养 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。 小猪喝完水后,必须有 minut

MS_Stephen的博客 424

【报错】(pycharm运行程序)OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading

1 报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading 2 分析原因 通过 activate Distance 进行自己创建的 Distance 虚拟环境中,输入python会显示环境中python的版本信息,再依次import,显然不会报错。 这是因为在Anaconda的环境下有支持 import torch 的 dll,而在PyCharm中使用的是自己创建的新环境,还缺少相应支持的dll,仅需在PyCharm中配置环境变量。.

静谧、淡雅 8623

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 167

Java实现 LeetCode 458 可怜的小猪

458. 可怜的小猪 有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒...

南 墙 1万+

Simulink开发项1000例实战专栏--实例148:构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块

电动汽车的动力电池是其核心部件,而电池的健康状态(State of Health, SOH)直接影响车辆的续航能力和使用寿命。SOH通常定义为当前电池容量与初始容量的比值,用百分比表示。通过基于MATLAB/Simulink平台的SOH评估仿真,可以实时监测电池的退化情况,并为电池管理系统(BMS)提供决策依据。本项目旨在构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块,并通过仿真验证SOH评估的准确性。

xiaoheshang_123的博客 342

458. 可怜的小猪

如3只小猪, 5个点. 125桶水排成一个立方体, 一只喝垂直于x轴的面, 一只喝垂直于y轴的面, 一只喝垂直于z轴的面.一只小猪代表一个维度(设为n), 每只小猪可以测试的次数+1为这只小猪在本维度上可以确定的点的数量(设为s),如n只小猪, 5个点. 5^n桶水排成一个n方体, 每只喝垂直于本维度的一个"超平面"上的所有的水.小猪喝水策略: 把所有的水桶排成一个n维的n方体, 每只小猪喝垂直于本维度(轴)的一个"超平面".则组成的n维空间中的总的点的数量为 s^n .3只小猪确定一个点(***).

qq_74745460的博客 439

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

leetcode458 可怜的小猪

leetcode458 可怜的小猪 有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分...

慢慢变强大 775

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Leetcode 458. 可怜的小猪 C++

Leetcode 458. 可怜的小猪 题目 有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒” 水桶?这 n 只水桶里有且仅有一只有毒的桶。 提示: 可以允许小猪同时饮用任意数量

weixin_43750513的博客 393

从一道互联网面试题谈到 Leetcode 458(可怜的小猪)

最近我的一个朋友在面试某国内非常重视算法的公司时遇到了一道有趣的智力题,我在刷leetcode时也遇到相似的题目,总结一下分享给大家。 先来说说那道面试题,有8瓶药,其中只有一瓶是毒药,我们有三只老鼠,能被毒药很快毒死。请问最少几次能把毒药试出来? 这类题目,首先要明确的是,一只老鼠可以同时喝不止一瓶药水,否则就只能一瓶一瓶的试下去了。明确了这件事,问题就变成了三只老鼠分别喝了几瓶药水之后,有多少...

帅地 4910

leetcode 458. 可怜的小猪

答案 ret 就是 bit ^ ret >= buckets 时,ret 的最小值。尝试次数 times = minutesToTest / minutesToDie。每只猪可以承载的数据量 bit = times + 1。特殊的,注意 buckets 为 1 的情况。

fks143的专栏 314

【LeetCode】458. 可怜的小猪(试毒药)

一、题目描述 有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒” 水桶?这 n 只水桶里有且仅有一只有毒的桶。 提示: 1. 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要

weixin_41888257的博客 1271

LeetCode 458 - 可怜的小猪

这道题乍一看是个“喂猪试毒”的奇怪问题,但本质其实是一个信息量 + 状态数的问题。你不是在算猪,而是在算: 在有限的时间里,一只猪最多能帮你区分多少种情况?

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1164

Leetcode 458. 可怜的小猪

Leetcode 458. 可怜的小猪 (思维或者信息熵) 链接:https://leetcode-cn.com/problems/poor-pigs 题意 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有 minutesToTest 分钟时间来确定哪桶液体是有毒的。 喂猪的规则如下: 选择若干活猪进行喂养 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。

Cho____i的博客 222

Leetcode 458.可怜的小猪

可怜的小猪 有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出"有毒...

kexinxin1的博客 218

力扣 458. 可怜的小猪

题目 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否会死进行判断。不幸的是,你只有 minutesToTest 分钟时间来确定哪桶液体是有毒的。 喂猪的规则如下: 选择若干活猪进行喂养 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。 小猪喝完水后,必须有 minutesToDie 分钟的冷却时间。在这段时间里,你只能观察,而不允许继续喂猪。 过了 minutesToDie 分钟后,所

(ง •_•)ง没有困难的工作,只有勇敢的狗狗 238

leetcode458. 458. 可怜的小猪 python

题目描述: 题解: 参考leetcode评论区 以示例1为例,minutestodie=15 minutestotest=60,在test时间内: 一只小猪可以喝四桶水,因此可以验证的水桶数量为5(如果前四桶都没有死,说明第五桶有毒)。 两只小猪情况如下: 一只小猪喝第i行,一只小猪喝第i列: 如果两只小猪都死亡,则(i,i)位置有毒。 如果第一只小猪死亡,第二只没有,说明有毒的在第i行,第i列之后(因为i之前被这种方式验证过,小猪没有死,说明没有毒) 如果有毒的桶的位置为(3..

ganggang的博客 345
上一篇: leetcode 455. 分发饼干
下一篇: leetcode 461. 汉明距离
Torch_Man
博客等级 码龄9年 6粉丝 25原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值