解题思路:
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;
}
}
来源:CSDN
作者:我就是个渴望成长的小菜鸡
链接:https://blog.csdn.net/junjunjiao0911/article/details/104174675