public class Solution {
    public boolean IsContinuous(int [] numbers) {
        ArrayList<Integer> listNotZero = new ArrayList<>();
        int zeroNum = 0;
        // 把非零 元素拿出来 并统计0的个数
        for(int i = 0; i < numbers.length; i++){
            if(numbers[i] != 0){
                listNotZero.add(numbers[i]);
            }
        }
        zeroNum = numbers.length - listNotZero.size();
        
        // 把非0元素排序
        Collections.sort(listNotZero);
        // 遍历非零元素, 前后两个元素相差 大于1的,在他们中间用0 补上,同时0的个数减少1
        for(int i = 0; i < listNotZero.size() -1; i++){
            if(listNotZero.get(i) + 1 != listNotZero.get(i + 1) && zeroNum != 0){
                listNotZero.add(i + 1, listNotZero.get(i) + 1);
                zeroNum --;
            }
        }
        // 判断是不是连续的数字
        boolean isTrue = true;
        for(int i = 0; i < listNotZero.size() -1; i++){
            if(listNotZero.get(i) + 1 != listNotZero.get(i + 1)){
                isTrue = false;
                break;
            }
        }
        return isTrue;
    }
}