首先查找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;
}
}