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;
        }
    }
    
  • 相关阅读:
    根据数据类型选择特征 select_dtypes(include=[]/exclude=[])
    quantile()
    concat()、merge()的区别
    json.dumps()和json.loads()
    Linux-top命令详解
    性能测试总结(一)---基础理论篇
    jmeter-常见问题及解决方法
    Jmeter之Bean shell使用(五)
    Jmeter-内存溢出原因及解决方法
    JMeter- JDBC Request
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074596.html
Copyright © 2011-2022 走看看