zoukankan      html  css  js  c++  java
  • LeetCode 781. 森林中的兔子

    781. 森林中的兔子

    Difficulty: 中等

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

    返回森林中兔子的最少数量。

    示例:
    输入: answers = [1, 1, 2]
    输出: 5
    解释:
    两只回答了 "1" 的兔子可能有相同的颜色,设为红色。
    之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。
    设回答了 "2" 的兔子为蓝色。
    此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。
    因此森林中兔子的最少数量是 5: 3 只回答的和 2 只没有回答的。
    
    输入: answers = [10, 10, 10]
    输出: 11
    
    输入: answers = []
    输出: 0
    

    说明:

    1. answers 的长度最大为1000
    2. answers[i] 是在 [0, 999] 范围内的整数。

    Solution

    两只相同颜色的兔子看到的其他同色兔子数必然是相同的。反之,若两只兔子看到的其他同色兔子数不同,那么这两只兔子颜色也不同。

    class Solution:
        def numRabbits(self, answers: List[int]) -> int:
            count = Counter(answers)
            ans = sum((x + y) // (y + 1) * (y + 1) for y, x in count.items())
            return ans
    
  • 相关阅读:
    codechef BIBOARD
    Tree
    NOIWC2021总结
    星际穿越
    GDKOI总结
    lg4229
    P3320 [SDOI2015]寻宝游戏
    P6670 [清华集训2016] 汽水
    P6326 Shopping
    P3060 [USACO12NOV]Balanced Trees G
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14617236.html
Copyright © 2011-2022 走看看