当前位置: 首页 > article >正文

算法第二十九天-森林中的兔子

森林中的兔子

题目要求

在这里插入图片描述

解题思路

重点:某个兔子回答x的时候,那么数组中最多循序x+1个同花色的兔子同时回答x
我们可以通过举例子得出一下的规律:
我们统计数组中所有回答x的兔子的数量n

  • n%(x+1)==0,说明我们此时只需要n/(x+1)种不同颜色的兔子,每种颜色兔子的个数为x+1;
  • n%(x+1) !=0说明我们此时只需要n/(x+1)+1种不同颜色的兔子,每种颜色兔子的个数为x+1
    那么通过这两种情况可以通过ceil(n/(x+1))来整合(其中国ceil()是向上取整函数),即n/(x+1)向下取整 种不同颜色的兔子
    向上取整的函数可以自己实现也可以转化为(n+x)/(x+1),这个公式中的除法是向下取整。

代码

class Solution:
    def numRabbits(self, answers: List[int]) -> int:
        count = collections.Counter(answers)
        return sum((count[x] + x) // (x + 1) * (x + 1) for x in count)

复杂度分析

时间复杂度: O ( N ) O(N) O(N)
空间复杂度: O ( N ) O(N) O(N)


http://www.kler.cn/a/272058.html

相关文章:

  • Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘
  • 简识JVM栈帧中的操作数栈
  • 学到一些小知识关于Maven 与 logback 与 jpa 日志
  • Linux网络 序列化与反序列化
  • AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案
  • 鸿蒙参考文档和问题记录
  • LGB2028 反向输出一个三位数
  • 动态规划题目集一(代码 注解)
  • 继承 ResponseEntityExceptionHandler
  • 2024云服务器安装MySQL,连接Navicat保姆级教程
  • Realtek PCIE Ethenter - PG Tool 使用操作說明
  • SpringBoot整合ElasticSearch应用
  • python中pdf转图片的操作方法二
  • “城市绿肺诊断:集成GIS、RS、VORS模型、CCDM模型、geodetecto、GWR模型技术深入解析生态系统与城镇化协调发展“
  • 接口幂等性问题和常见解决方案
  • LLM之RAG实战(二十九)| 探索RAG PDF解析
  • Flutter开发进阶之使用工具效率开发
  • 京东云主机+京美建站SaaS版
  • Python程序设计基础——代码习题
  • Python常见报错疑难杂症的解决思路解决方案
  • 【学习张天禹老师的vue课程发现的一个问题-vue销毁时候到底会不会解绑原生的dom事件?】
  • Halcon OCR文字识别
  • 【方法封装】时间格式化输出,获取请求设备和IP
  • 代码随想录算法训练营day24 | 回溯算法理论基础、77.组合
  • IIS上部署.netcore WebApi项目及swagger
  • Mysql 索引、锁与MVCC等相关知识点