781 森林中的兔子【python3】

781. 森林中的兔子 这道题的关键在于正确理解兔子回答的含义,并转换为合理的分组问题。回答 x ⇒ 至少有 x + 1 只同颜色兔子;多只兔子回答同样的 x,需要分组,并用 ceil 取整来保证覆盖所有兔子;每组都必须补满到 x + 1 才能确保最小数量。🐇💡。 阅读详情

题目

森林中有未知数量的兔子。提问其中若干只兔子 “还有多少只兔子与你(指被提问的兔子)颜色相同?” ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。

给你数组 answers ,返回森林中兔子的最少数量。
例如:

输入:answers = [1,1,2]
输出:5
解释:
两只回答了 "1" 的兔子可能有相同的颜色,设为红色。 
之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。
设回答了 "2" 的兔子为蓝色。 
此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。 
因此森林中兔子的最少数量是 5 只:3 只回答的和 2 只没有回答的。

思路

由示例,我们最好是把回答了相同数字的兔子当作相同的颜色,那么可以得到森林中最少的兔子数量。

  1. 特殊情况:答案是0的兔子,说明这些兔子的颜色在森林里独一无二。无论数量最多还是最少,这类颜色的兔子都只有它们自己一只。

  2. 回答相同数字的兔子数量≤\leq≤回答数字+1,最少的情况即为:回答数字+1
    例如:一共有3只兔子回答5,那么最少的情况就是,这三只兔子都是同一个颜色,对于任何一只兔子而言,回答的数字5都包括另外两只。那么加上回答的兔子自己,这种颜色的兔子最少有6只

  3. 回答相同数字的兔子数量>>>回答数字+1:
    比如有7只兔子回答2,那么这7只兔子不可能都是同一种颜色.应当把它们分为(2+1)=3个一组:2,2,2∣2,2,2∣22,2,2|2,2,2|22,2,2∣2,2,2∣2每一组的兔子为同一种颜色,按照步骤2的方法计算总共的兔子数量。
    比如按照这个举例应当是(2+1)*3=9只兔子为最少的情况

代码

class Solution:
    def numRabbits(self, answers: List[int]) -> int:
        rabibit_num=0
        D={x:0 for x in answers}
        for x in answers:
            D[x]+=1

        for x in D:
            if x+1>=D[x] and x>0:
                rabibit_num+=x+1
            elif x+1<D[x] and x>0:
                if D[x]%(x+1)==0:
                    rabibit_num+=D[x]//(x+1)*(x+1)
                else:
                    rabibit_num+=D[x]//(x+1)*(x+1)+(x+1)  
            elif x==0:
                rabibit_num+=D[x] 
        
        return rabibit_num
基于单片机的继电器参数测试系统设计 由于原有测试系统在参数设置上过于单一,在对继电器测试过程中需要多次进行器件连接,导致对其测试准确度下降,会造成继电器的二次损伤,基于单片机研究继电器参数测试系统的设计方法。在硬件设计上,构建二级模式集散控制框架,利用单片机进行数据采集和处理,满足实时继电器参数数据的同步控制;设计双极性反向比例输出电路,分别利用电极电阻对继电器两侧电压进行放大,实现继电器实时电压的检测。实验结果:以两组类型断电器为测试对象,分别连接示波器进行真实数据采集,在本文系统的应用下所得参数测试结果,与真实的数据相一致,具有实际应用效 阅读详情

相关推荐

MATLAB图像去噪实战:如何用巴特沃斯滤波器完美去除横条纹(附完整代码)

本文详细介绍了如何使用MATLAB中的巴特沃斯滤波器有效去除图像中的横条纹噪声。通过频域分析和滤波处理,结合完整的代码示例,帮助读者掌握从噪声分析到参数优化的全流程技术,实现高质量的图像去噪效果。

weixin_30566063的博客 562

781. 森林中的兔子 (Python 实现)

题目: 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2只蓝色兔子的回答没有包含在数组中。 因此森林中兔子的最少数量是 5: 3

d_l_w_d_l_w的博客 393

nature子刊:MCNN基于电池故障诊断的模型约束的深度学习方法

本研究提出了一种基于模型约束神经网络(MCNN)的锂离子电池在线故障诊断方法,整合物理模型与深度学习,有效解决了随机工况下传统方法诊断精度低、依赖故障样本等问题。通过统计修正电池包模型和双向LSTM网络,实现了电池状态的高精度预测(平均RMSE 3.9%),并设计模型耦合自动编码器提取可解释特征。在包含18.2百万条真实车辆数据的验证中,该方法故障检测TPR在FPR=0.1时达85%,较基准方法提升超46.5%,且能提前30分钟预警内部短路等故障。研究还展示了算法在跨电池包结构迁移中的优越性,为工业应用提供

hasakie的博客 1757

python 字符串截取 去掉末尾的数字_[781]python去除字符串中开头|结尾|所有字母、数字...

string是一个字符串常量的集合的包。公共模块变量:whitespace – 包含所有空白的字符串ascii_lowercase – 包含所有小写字母的字符串ascii_uppercase – 一个包含所有ASCII大写字母的字符串ascii_letters – 包含所有ASCII字母的字符串digits – 包含所有十进制位数的字符串hexdigits – 包含所有 十六进制数字的字符串oct...

weixin_39550587的博客 1131

RT-Thread代码启动过程——以及 $Sub$ $main 与 $Super$ $main

我们找到系统复位的地方,可以往下单步跟踪。 ①从系统初始化开始执行,将函数地址赋给R0寄存器,跳转到R0地址执行并返回此处(BLX是带链接的跳转,即带返回的跳转)。 ②将main函数地址给R0,将函数地址赋给R0,跳转到R0地址执行,不返回(BX是跳转,不返回)。 ③跳转到了$Sub$$main。 【注:在 __CC_ARM 编译器环境下,使用了$Sub$$ 与$Super$ $ 的...

yang1111111112的博客 1万+

OTA(Over-The-Air)升级

OTA(Over-the-Air)是一种通过无线方式进行数据传输和更新的技术,通常用于电子设备(如智能手机、汽车、物联网设备等)的软件、固件或配置更新。OTA可以在设备与服务器之间进行远程传输,用户无需将设备接入电脑或进行有线操作。通过OTA,用户只需要通过Wi-Fi或移动网络连接,便能自动接收并安装最新的更新,而无需手动干预。OTA的优点是便捷和高效,能够确保设备随时保持最新状态,同时减少用户的操作负担。:如智能家居设备、路由器、汽车等硬件设备的固件更新。:确保设备上的应用保持最新版本。

weixin_50127894的博客 5049

LeetCode-781. 森林中的兔子

781. 森林中的兔子 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 "1" 的兔子可能有相同的颜色,设为红色。 之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了...

紫藤&code的博客 453

宏基因组功能注释实战:从CAZyme到VFDB的完整流程(含数据库下载与脚本优化)

本文详细介绍了宏基因组功能注释的完整流程,涵盖CAZyme、eggNOG、CARD和VFDB四大核心数据库的实战应用。从环境配置、数据库下载与预处理到注释流程执行与优化,提供了全面的操作指南和脚本优化建议,帮助研究人员高效完成宏基因组数据分析。特别针对CAZyme注释等关键步骤给出了参数优化方案和常见问题排查方法。

weixin_29289821的博客 294

LeetCode 781. 森林中的兔子

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 "1" 的兔子可能有相同的颜色,设为红色。 之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 "2" 的兔子为蓝色。 此...

柚子本心凉的博客 851

OpenGL ES 3.0 开发(一):绘制一个三角形

该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 O...

字节流动 8万+

【Python】解决 ERROR: Exception:Traceback (most recent call last):(亲测有效)

1、遇到问题2、问题解决

Fanjufei的博客 1万+

LeetCode题解(0781):森林中的兔子(Python)

题目:原题链接(中等) 标签:哈希表、数学 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 48ms (90.91%) Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def numRabbits(self, answers: List[int]) -> int: count = collections.Coun

长行 565

学习STM32的DS18B20温度传感器

该函数首先复位传感器,然后发送跳过ROM命令和转换命令,并等待转换完成。接下来,它再次复位传感器,发送跳过ROM命令和读取温度命令。最后,它读取温度值的最低字节和最高字节,并将其组合成16位温度值。传感器的VCC引脚连接到STM32的3.3V电源,GND引脚连接到GND,而数据引脚连接到任何一个IO引脚。需要注意的是,示例代码中使用了一个简单的延时函数来等待转换完成。实际上,您可能需要使用定时器或其他更精确的延时方法来实现更准确的延时。下面是一个示例代码,演示如何读取DS18B20传感器的温度值。

m0_75244442的博客 1180

Python描述 LeetCode 781. 森林中的兔子

Python描述 LeetCode 781. 森林中的兔子   大家好,我叫亓官劼(qí guān jié ),在GitHub & 优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在GitHub & 优快云中写博客,唯一博客更新的地址为:亓官劼的博客 ,近期将逐渐同步刷题相关记录到GitHub:Algorithmic-learning-records,大多是本人的刷题记录,如果转载请附上原文地址,谢谢。 由于学习工作的需要,算法刷题将会逐渐由C++向Python

一起加油 845

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Leetcode 781.森林中的兔子(Rabbits in Forest)

Leetcode 781.森林中的兔子 1 题目描述(Leetcode题目链接)   森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 "1" 的兔子可能有相同的颜色,设为红色。 之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 "2" 的兔子为蓝色。 此外,森林中还应有另外

qq_39378221的博客 352

LeetCode 0781.森林中的兔子:思维题(哈希表+贪心) —— 通俗易懂讲解版

LeetCode 0781.森林中的兔子:思维题(哈希表+贪心) —— 通俗易懂讲解版 森林中有未知数量的兔子。提问其中若干只兔子 "还有多少只兔子与你(指被提问的兔子)颜色相同?" ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。 给你数组 answers ,返回森林中兔子的最少数量。

<font color="Pink">Tisfy的博客</font> 1741

leetcode 781. 森林中的兔子

题目链接 https://leetcode-cn.com/problems/rabbits-in-forest/comments/ 题目描述 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在answers数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = ...

qq_38043440的博客 284

LeetCode例题讲解:781.森林中的兔子

那么还有一只额外的兔子回答 555,这只兔子只能是其他的颜色,这一颜色的兔子也有 666 只。因此,将 answers\textit{answers}answers 中值相同的元素分为一组,对于每一组,计算出兔子的最少数量,然后将所有组的计算结果累加,就是最终的答案。一般地,如果有 x 只兔子都回答y,则至少有 ⌈x/y+1⌉种不同的颜色,且每种颜色有 y+1 只兔子,因此兔子数至少为 ⌈x/y+1⌉*y。因此森林中兔子的最少数量是 5 只:3 只回答的和 2 只没有回答的。,返回森林中兔子的最少数量。

heyijieyou1的博客 525

【哈希-中等】781. 森林中的兔子

【题目】 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 【示例1】 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。 之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。 因此森林中兔子的最少数量是 5:

... 171

leetcode每日一题 2021/4/4 781. 森林中的兔子

题目 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。 之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。 因此森林中兔子的最少数量是 5: 3 只

Twinkle_sone的博客 384

781. 森林中的兔子 2020/10/08

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 链接:https://leetcode-cn.com/problems/rabbits-in-forest 找规律,一定要写一写方便找到规律。 这里设n为兔子说的话,m为一共有几只兔子说了同样的话。在前面很平常了,需要统计元素出现次数用字典。 count = {} for i in answers:

weixin_41917143的博客 165

781. Rabbits in Forest

In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how many other rabbits have the same color as them. Those answers are placed in an array.Return the minim

xdhc的博客 227

781. Rabbits in Forest(python+cpp)

题目: In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how many other rabbits have the same color as them. Those answers are placed in an array. Return th...

小湉湉的博客 292

【python3】leetcode 781. Rabbits in Forest (medium)

781. Rabbits in Forest (medium) In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how many other rabbits have the same color as them. Those answers are ...

momottyy的专栏 260

【LeetCode】781. Rabbits in Forest 解题报告(Python & C++)

【LeetCode】781. Rabbits in Forest 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/rabbits-in-forest/description/ 题目描述: In a forest, each rabbit has some color. Some subset of...

负雪明烛 1366

LWC 71: 781. Rabbits in Forest

LWC 71: 781. Rabbits in Forest 传送门:781. Rabbits in Forest Problem: In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how many other rabbits have the...

Demon-初来驾到 986

给全球科技圈的亿点点震撼(含视频)

但假如有兔子回答了数值 2,可能只是三只白兔,也可能是三只白兔和三只灰兔同时进行了回答(对应结论 2)。保持题目现有的条件不变,假定颜色相同的兔子至少有一只发声,问题改为「问兔子颜色数量可能有多少种」,又该如何求解呢?更离谱的是,SpaceX 这家企业,虽然研究的太空探索技术,但用的是互联网"快速迭代"的那一套,仍然在快速发展。这几天科技圈的最大震撼,是 SpaceX 的第五次试飞,以及首次验证"筷子夹火箭"技术。只兔子为同一颜色,这样能够满足题意,同时不会导致「额外」兔子数量增加(颜色数量最少)。

宫水三叶的刷题日记 1126
上一篇: 1190 反转每对括号间的子串【python3】
下一篇: 739 每日温度【python3】
Rai Sokann
博客等级 码龄7年 8粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值