zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 781 森林中的兔子(分析题)

    781. 森林中的兔子

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

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

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

    输入: answers = [10, 10, 10]
    输出: 11

    输入: answers = []
    输出: 0
    说明:

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

    class Solution {
            public int numRabbits(int[] answers) {
            Map<Integer,Integer> map = new HashMap<>();
            int num = 0;
            for (int answer : answers) {
                //如果存在当前的数量的话,那么我们可以认为这两个是一样的颜色
                if(map.containsKey(answer)&&map.get(answer)>0){
                    //然后给这个数量-1,因为是一样的了
                    //这里是因为,我第一次如果是6只,我已经加进去了,
                    //所以后面再出现相同的6只六次以内得话
                    //我是不需要计算的,因为前面我们已经放进去了
                    map.put(answer,map.get(answer)-1);
                }else {
                    //这里描述得是,我其他还有多少兔子和我颜色一样,
                    //所以这个颜色得兔子数是answer+1
                    num+=answer+1;
                    map.put(answer,answer);
                }
            }
            return num;
        }
    }
    
  • 相关阅读:
    1144 The Missing Number (20分)
    1145 Hashing
    1146 Topological Order (25分)
    1147 Heaps (30分)
    1148 Werewolf
    1149 Dangerous Goods Packaging (25分)
    TypeReference
    Supervisor安装与配置()二
    谷粒商城ES调用(十九)
    Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946119.html
Copyright © 2011-2022 走看看