我最后这个过了83,仍然不懂发生了什么
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class beike01 {

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        List<Integer> candy = new ArrayList<>();
        for(int i=0; i<num; i++){
            candy.add(scanner.nextInt());
        }
        candy.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        int result = minCount(candy);
        System.out.println(result);
    }

    public static int minCount(List<Integer> candy){
        int result = 0;
        if(candy.size() == 1) return 1;
        while(candy.size()>1){
            int temp = candy.get(0);
            int count = 0;
            for(int i=0; i<candy.size(); i++){
                if(candy.get(i) != temp){
                    break;
                }else{
                    count++;
                }
            }
            for(int i=0; i<count; i++) candy.remove(0);
            for(int i=0; i<count/2; i++) candy.add(0, temp+1);
            result += count%2;
        }
        return result + candy.size();
    }

}