题目:

简述题目:
给了一组不同种类的糖果,要把这些糖果平均分给兄妹二人,问最多可以拿到多少种不同类的糖果
思路:
首先计算出共有多少类(k)的糖果以及每人可以分到多少个糖果(n),如果k<= n,那么最多有k种,否则即为n种
代码:
import java.util.HashSet;
import java.util.Set;
public class distributeCandies575 {
public static int distributeCandies(int[] candies) {
Set<Integer> set = new HashSet();
for(Integer i : candies){
set.add(i);
}
if(set.size() <= candies.length / 2 )
return set.size();
else return candies.length / 2;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] candies = {1,1,2,2,3,3};
System.out.println(distributeCandies(candies));
}
}
本文介绍了一个简单的算法问题——如何将不同种类的糖果平均分配给两个人,使得每个人获得最多的不同种类的糖果。通过计算糖果种类数量与每人能分得的糖果数,确定了每个人能获得的不同种类糖果的最大数量。
288

被折叠的 条评论
为什么被折叠?



