leetcode(01)森林中的兔子

今天开始记录刷题的过程,每天记录自己刷题的题目和自己的解法,欢迎朋友们给出更多更好的解法。

森林中的兔子

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

输入示例1:

answers=1,1,2

输出示例1:

输出:5

输入示例2:

answers=10,10,10

输出示例2:

11

我的思路:分组计数,使用字典记录。

具体代码如下:

python 复制代码
def rabbit(answer_list):
    min_rabbit_num = 0
    answer_count = {}
    for i in answer_list:
        answer_count[i] = answer_count.get(i, 0) + 1 if i in answer_count else 1
    for key, value in answer_count.items():
        n = value // (key + 1)
        m = value % (key + 1)
        min_rabbit_num += n * (key + 1) if m == 0 else (n + 1) * (key + 1)
    return min_rabbit_num
# answers=[1,1,2]
min_rabbit_num = rabbit([10, 10, 10])
print(f'min_rabbit_num:{min_rabbit_num}')
相关推荐
hetao17338375 小时前
2026-09-29 hetao1733837 的刷题记录
c++·算法
欣欣之王来了6 小时前
AI合规专项:AI算法透明度的合规要求
人工智能·算法
wzdark6 小时前
分块思想在算法优化中的实践与应用4
算法
Because_of_Her16 小时前
dfs-洪水填充技巧
笔记·算法·深度优先·洪水填充
小静AI工程实验室6 小时前
RSA 算法详解:从模幂原理到 OAEP 加密、PSS 签名与 Python 实验
python·算法
xzal126 小时前
GESP Python笔记
笔记·python·算法
wzdark6 小时前
算法中的记忆化思想与重复子问题优化4
算法
Discipline10297 小时前
流水线运行是否正随时间变得更加集中?
算法
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出书柜中编号只出现一次的那一层——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
lzhdim7 小时前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#