当前位置:网站首页>781. 森林中的兔子
781. 森林中的兔子
2022-08-09 22:41:00 【InfoQ】
781. 森林中的兔子
森林中有未知数量的兔子。提问其中若干只兔子 "还有多少只兔子与你(指被提问的兔子)颜色相同?" ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。
给你数组 answers ,返回森林中兔子的最少数量。
来源:力扣(LeetCode)
链接:
https://leetcode.cn/problems/rabbits-in-forest
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
给兔子分组

先排序,让相同的兔子在一起
这样就可以让相同的兔子分组,组内自我消化

排序好了,我们要怎么计算出相同的兔子的数量呢,
我们发现第一种颜色有4只兔子的回答为1
那么在第一种颜色中可以分为2只兔子为一组
因为1代表这除了自己还有另外一只兔子颜色相同
因此2只兔子为一组,因此第一种颜色的兔子有4只
到了第2种颜色
2代表着除了自己还有2只兔子颜色相同
因此需要分成3只兔子为一组
但第二种颜色的兔子在数组中只有2只,无法凑齐3只
证明还有兔子没被调查,需要在额外补一只兔子,
因此第二种颜色的兔子数量为3

同理可得,第三种颜色的兔子有8只
第四种颜色的兔子有5只,因为数组中只有3只,需要另外补2只,
第五种颜色的兔子有6只
计算公式
变量x代表有多少只兔子颜色相同
c代表当前颜色的兔子在数组中有多少只
如果当前数是x,有c只,有几组?

我们以7个3为例子
3代表除了自己有3只兔子颜色相同
因此4只兔子为一组
我们需要分出2组
因此为7/4向上取整
那么怎么向上取整
原本是a/b
向上取整变为
(a+(b-1))/b

因此最后公式为((c+x)/(x+1))*(x+1),
代码
class Solution {
public int numRabbits(int[] answers) {
int n=answers.length;
if(answers==null||n==0){
return 0;
}
Arrays.sort(answers);
int x=answers[0];
int c=1;
int ans=0;
for(int i=1;i<n;i++){
if(x!=answers[i]){
ans+=((c+x)/(x+1))*(x+1);
x=answers[i];
c=1;
}else{
c++;
}
}
return ans+((c+x)/(x+1))*(x+1);
}
}边栏推荐
- 带着昇腾去旅行:一日看尽金陵城里的AI胜景
- 经济衰退即将来临前CIO控制成本的七种方法
- 【实用工具系列】MathCAD入门安装及快速上手使用教程
- Sqlserver限制账户在哪些ip下才可以访问数据库
- 金仓数据库 KingbaseGIS 使用手册(6.4. 几何对象存取函数)
- 力扣:518. 零钱兑换 II
- 打包报错 AAPT: error: failed to read PNG signature: file does not start with PNG signature.
- 用哈希简单封装unordered_map和unordered_set
- 探索TiDB Lightning源码来解决发现的bug
- Sqlserver restricts the ip under which accounts can access the database
猜你喜欢
随机推荐
用哈希简单封装unordered_map和unordered_set
全面解析FPGA基础知识
What are the Shenzhen fortress machine manufacturers?Which one do you recommend?
Gartner全球集成系统市场数据追踪,超融合市场增速第一
【集训DAY5】快速排序【模拟】【数学】
70. 爬楼梯进阶版
三:OpenCV图片颜色通道数据转换
68. qt quick-qml multi-level folding drop-down navigation menu supports dynamic add/unload, support qml/widget loading, etc.
matplotlib散点图颜色分组图例
【集训DAY3】中位数
为什么刀具数据库无法打开?
高手这样看现货白银走势图
JS基础笔记-关于对象
深圳堡垒机厂家有哪些?重点推荐哪家?
你的手机曾经被监控过吗?
Force buckle: 279. Perfect square
61.【快速排序法详解】
领跑政务云,连续五年中国第一
【诗歌】爱你就像爱生命
Gartner's global integrated system market data tracking, hyperconverged market growth rate is the first








