题目标签:HashMap

  题目给了我们一组数字,每一个数字代表着这只兔子说 有多少只一样颜色的兔子。

  我们把每一个数字和它出现的次数都存入map。然后遍历map,来判断到底有多少个一样颜色的group,因为这里可能会出现一种情况:同一种颜色的兔子,可能有好几组。

  所以利用 value / groupSize 和 value % groupSize 来判断,到底有多少只兔子需要计算,具体看code。

Java Solution:

Runtime: 3 ms, faster than 86.90%

Memory Usage: 37.8 MB, less than 17.65%

完成日期:03/28/2019

关键点:利用 value 和 groupSize 之间的关系,来判断准确的数量

class Solution {
public int numRabbits(int[] answers) {
Map<Integer, Integer> map = new HashMap<>();
int result = 0; for(int answer : answers)
{
if(answer == 0)
result++;
else
map.put(answer, map.getOrDefault(answer, 0) + 1);
} int groupCount = 0;
int leftover = 0; for(int key : map.keySet())
{
int value = map.get(key);
int groupSize = key + 1; groupCount = value / groupSize;
leftover = value % groupSize; if(leftover > 0)
groupCount++; result += groupCount * groupSize;
} return result;
}
}

参考资料:N/A

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

LeetCode 781. Rabbits in Forest (森林中的兔子)的更多相关文章

  1. [LeetCode每日一题]781. 森林中的兔子

    [LeetCode每日一题]781. 森林中的兔子 问题 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. ...

  2. Java实现 LeetCode 781 森林中的兔子(分析题)

    781. 森林中的兔子 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. 返回森林中兔子的最少数量. 示例: ...

  3. 【python】Leetcode每日一题-森林中的兔子

    [python]Leetcode每日一题-森林中的兔子 [题目描述] 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers ...

  4. [Swift]LeetCode781. 森林中的兔子 | Rabbits in Forest

    In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how ...

  5. LC 781. Rabbits in Forest

    In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how ...

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

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  7. [LeetCode] Rabbits in Forest 森林里的兔子

    In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how ...

  8. 【LeetCode题解】94_二叉树的中序遍历

    目录 [LeetCode题解]94_二叉树的中序遍历 描述 方法一:递归 Java 代码 Python代码 方法二:非递归 Java 代码 Python 代码 [LeetCode题解]94_二叉树的中 ...

  9. #调整随机森林的参数(调整n_estimators随机森林中树的数量默认10个树,精度递增显著,但并不是越多越好),加上verbose=True,显示进程使用信息

    #调整随机森林的参数(调整n_estimators随机森林中树的数量默认10个树,精度递增显著) from sklearn import datasets X, y = datasets.make_c ...

随机推荐

  1. Linux学习日记之Deepin下查看crontab运行日志

    Deepin使用 journalctl 替代了 syslog 来处理系统日志 故查看crontab运行日志应使用 journalctl -f /usr/sbin/cron

  2. JSP学习笔记 - 内置对象 Response

    1.response.addHeader("refresh","2"): 制定页面刷新时间 2.response.addHeader("refresh ...

  3. BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂

    Code: #include<bits/stdc++.h> #define maxn 10000004 #define ll long long using namespace std; ...

  4. java_IO_3

    Reader和Writer针对字符文件  对图片类文件可能就显得无能为力了  会损坏文件 package ioStudy; import java.io.File; import java.io.Fi ...

  5. 01网页<head></head>常用标记及属性

    网页<head></head>常用标记及属性 <!DOCTYPE html> <html> <head> <!--网页标题--> ...

  6. JAVA基础——集合类汇总

    一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...

  7. [Git]Please make sure you have the correct access rights and the repository exists

    这个问题是这样,需要在已有github账号的A机器上,再创建一个github账号,新账号创建完毕,将代码通过机器A push上之后,再另一台机器B,clone 这个项目时报出了如下错误: Permis ...

  8. P1269 信号放大器

    P1269 信号放大器 给一棵有根树,树的边上有距离.根上有一个信号发射器,会发生强度为 h 的信号,信号会往所有的节点传播,然而每经过一条边强度就会削减距离的大小,当信号到达某点时小于 1,则信号传 ...

  9. [Algorithm] 10. Reverse Integer

    Description Given a 32-bit signed integer, reverse digits of an integer. Example Example 1: Input: 1 ...

  10. 解决window.location.href参数太长

    前言:一提到页面跳转,最常用的一般就是window.location.href,如果需要带参数,也许可以在后面用?拼上,但这样并不安全,而且有个更严重的问题,这样的拼接是有长度限制的,如果达到好几千个 ...