575.分糖果

  • ​​题目描述​​
  • ​​解题思路​​
  • ​​代码实现​​

题目描述

【LeetCode】第21天 - 575.分糖果_i++

解题思路

  • 先统计共有多少种种类的糖果(利用Set的特点:不重复存储值),种类数即为集合的长度;
  • 因为是均分,所以每个人最多可以分到n/2个。当种类数大于n/2时,返回n/2;当种类数小于n/2时,返回种类数。

代码实现

class Solution {
public int distributeCandies(int[] candyType) {
// Arrays.sort(candyType);
// int result = 1;
// for(int i=1;i<candyType.length;i++){
// if(result == candyType.length/2){
// return result;
// }
// if(candyType[i]!=candyType[i-1]){
// ++result;
// }
// }

// return result;

Set<Integer> set = new HashSet<Integer>();
for(int i=0;i<candyType.length;i++){
set.add(candyType[i]);
}
return (set.size()<candyType.length/2)?set.size():candyType.length/2;
}
}