575. 分糖果

╄→гoц情女王★ 提交于 2020-02-05 00:18:27

解题思路:

1.利用set集合不可重复性的特点,遍历数组,将遍历的元素存入set中

2.set的大小size就是糖果的种类,数组长度的一半就是每人应该得到的糖果数avg

3.当size>=avg时,即糖果的种类大于等于每人应该得到的糖果数,则妹妹可以获得的最大糖果的种类数是avg

4.当size<avg时,即糖果的种类小于每人应该得到的糖果数,则妹妹可以获得的最大糖果的种类数是size

代码实现

class Solution {
    public int distributeCandies(int[] candies) {
        Set<Integer> set=new HashSet<>();
        for(int val:candies){
            set.add(val);
        }
        //糖果的种类
        int size=set.size();
        //每人分得的糖果数
        int avg=candies.length>>1;
        if(size>=avg){
            return avg;
        }
        return size;
    }
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!