题目链接 https://leetcode-cn.com/problems/distribute-candies/ 解题思路 首先用哈希表记录糖果的类型数量如果糖果种类大于糖果总数的一半,那么返回糖果数量的一半就好,因为妹妹已经得到种类最多的糖果了否则,返回糖果的种类。 AC代码 class Solution { public int distributeCandies(int[] candies) { Set<Integer> set = new HashSet<>(); for (int candy : candies) set.add(candy); return Math.min(set.size(), candies.length / 2); } } 本地测试代码 package com.company; import java.util.HashSet; import java.util.Set; public class Solution_575 { public static int distributeCandies(int[] candies) { Set<Integer> set = new HashSet<>(); for (int candy : candies) set.add(candy); return Math.min(set.size(), candies.length / 2); } public static void main(String[] args) { System.out.println(distributeCandies(new int[]{1, 1, 2, 2, 3, 3})); System.out.println(distributeCandies(new int[]{1, 1, 2, 3})); } }