首先查找0的个数,然后计算排序后的数组每个数与前一个数的差-1之和,0不参与计算,判断0的个数是否大于等于前面的差之和,如果大于等于代表可以用0补齐。

import java.util.*;
public class Solution {
    public boolean IsContinuous(int [] numbers) {
        Arrays.sort(numbers);
        int zongshu=0;
        int zero = 0;
        Set<Integer> we = new HashSet<>();
        for(int i : numbers){
            if(!we.add(i)&&i!=0){ return false;}
            if(i==0){zero++;}
        }
        for(int i =numbers.length-1;i>0;i--){
            if(numbers[i-1]==0){
                break;
            }
            if(numbers[i] - numbers[i-1]-1>0){
                zongshu+=numbers[i] - numbers[i-1]-1;
            }
        }
        if(zongshu <= zero || zero==4 ){
            return true;
        }
        return false;
    }
}