分糖果

作者: 习惯了_就好 | 来源:发表于2019-07-08 09:27 被阅读0次

给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。

示例 1:

输入: candies = [1,1,2,2,3,3]
输出: 3
解析: 一共有三种种类的糖果,每一种都有两个。
最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。

示例 2 :

输入: candies = [1,1,2,3]
输出: 2
解析: 妹妹获得糖果[2,3],弟弟获得糖果[1,1],妹妹有两种不同的糖果,弟弟只有一种。这样使得妹妹可以获得的糖果种类数最多。

注意:

数组的长度为[2, 10,000],并且确定为偶数。
数组中数字的大小在范围[-100,000, 100,000]内。 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/distribute-candies
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    //因为要平均分,所以分一半,也就是分得种类最多一半,糖果种类不够一半,最多分的就是糖果种类
    public int distributeCandies(int[] candies) {
        int length = candies.length;
        Set<Integer>set = new HashSet<Integer>();
        // Map<Integer,Integer> map = new HashMap<>();
        // for(int i = 0; i < length; i++){
        //     // map.put(candies[i],i);
        //     set.add(candies[i]);
        // }
        for(int item : candies){
            set.add(item);
        }
        int mapLength = set.size();
        if(mapLength > length /2){
            return length / 2;
        } else {
            return mapLength;
        }
        
    }
}

相关文章

  • 分糖果

    给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟...

  • 分糖果

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/distri...

  • NOIP训练营内部试题-分糖果

    NOIP训练营内部试题-分糖果 摘自:清北学堂NOIP训练营试题T2 题目:分糖果 分糖果 (candy) Tim...

  • 分糖果问题

    分糖果问题

  • 分糖果 II

    排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友...

  • 分糖果 II

    题目: 题目的理解: 从举例中明白根据n * (n + 1) / 2 然后和candies比较,获取一共可以分多少...

  • 分糖果问题

    描述 一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下: 每个孩子不管得分多少,起码分到一个糖果。 任意两个...

  • 1103-分糖果II

    分糖果II 题目 排排坐,分糖果。 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_pe...

  • [笔试题]分糖果

    科大讯飞2018实习生笔试题:/** 分糖果:有一盒糖果要分成两份,但是每颗糖果质量不尽相同,为了分配公平,两份糖...

  • 蓝桥杯 分糖果

    逻辑在代码中描述很清楚了,若是有比笔者更好的方法,希望一起讨论

网友评论

    本文标题:分糖果

    本文链接:https://www.haomeiwen.com/subject/ewsnhctx.html