题目
给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。
解题思路
统计数组中糖果的种类数量。优先分给妹妹所有种类的糖果,如果糖果的种类多于妹妹可以拿的糖果数量,那么返回数组长度的一半。
代码
class Solution {
public int distributeCandies(int[] candyType) {
Set<Integer> set = new HashSet<>();
for (int ct : candyType) {
set.add(ct);
}
if (set.size() >= candyType.length / 2) return candyType.length / 2;
else return set.size();
}
}