LeetCode 题解:781. 森林中的兔子,贪心,JavaScript,详细注释
原题链接:781. 森林中的兔子
解题思路:
如果一只兔子说还有
n
只兔子与它有相同颜色,那么必然存在n + 1
只兔子。answers
中并不包含所有兔子,也就是说[2]
、[2, 2]
、[2, 2, 2]
三种情况其实是一样的。如果
answers = [2, 2, 2]
,只有当兔子数量为3
只时,才能满足任意一只能告诉你还有2
只与它有相同颜色。如果
answers = [2, 2, 2, 2]
,此时回答可以拆分成两组,分别是[2, 2, 2]
和[2]
,共有6
只兔子。因此问题就转换为,将
answers
按照回答数量分类,并统计所有分类的兔子数量。如果每类回答
ans
的数量有count
个,那么兔子一共可以分为Math.ceil(count / (ans + 1))
组,每组ans + 1
只。因此每类回答对应的兔子数量为
Math.ceil(count / (ans + 1)) * (ans + 1)
。
复制代码
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/1496de52bd2069eb2a96451c4】。文章转载请联系作者。
评论