575 Distribute Candies 分发糖果问题

来源:互联网 发布:mac如何彻底关机 编辑:程序博客网 时间:2024/05/19 19:32

给定一个整数数组这个数组的长度为偶数,不同的数字代表不同的种类糖果。每一个数字意味着一个糖果。你需要把这些糖果等量的分发给弟弟妹妹。返回的最大种类数量糖果妹妹可以获得。


example1

Input: candies = [1,1,2,2,3,3]Output: 3Explanation:There are three different kinds of candies (1, 2 and 3), and two candies for each kind.Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too. The sister has three different kinds of candies. 


example2

Input: candies = [1,1,2,3]Output: 2Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1]. The sister has two different kinds of candies, the brother has only one kind of candies. 


solution

public class Solution {    public int distributeCandies(int[] candies) {        HashSet < Integer > set = new HashSet < > ();        for (int candy: candies) {            set.add(candy);        }        return Math.min(set.size(), candies.length / 2);    }}

不同种类的数量大于一半,就得到一半的糖果数量,若小于一半,则为全部的种类量。