leetcode(01)森林中的兔子

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

森林中的兔子

森林中有未知数量的兔子,提问其中若干只兔子"还有多少只兔子与你(被提问的兔子)颜色相同"。将答案收集到一个整数数组answers中,其中answers[i]是第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}')
相关推荐
Proxy_ZZ021 小时前
用Matlab绘制BER曲线对比SPA与Min-Sum性能
人工智能·算法·机器学习
黎阳之光21 小时前
黎阳之光:以视频孪生领跑全球,赋能数字孪生水利智能监测新征程
大数据·人工智能·算法·安全·数字孪生
小李子呢021121 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
XH华21 小时前
数据结构第九章:树的学习(下)
数据结构·学习
2301_822703201 天前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙
cmpxr_1 天前
【C】数组名、函数名的特殊
c语言·算法
KAU的云实验台1 天前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
会编程的土豆1 天前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
大熊背1 天前
如何利用Lv值实现三级降帧
算法·自动曝光·lv·isppipeline