import java.util.Arrays; public class Solution { public boolean isContinuous(int [] numbers) { if(numbers.length < 5){ return false; } Arrays.sort(numbers); //记录0的数量 int zeroCount = 0; //记录当前数值 int cur =0; for(int i=0;i<numbers.length;i++){ if(numbers[i]==0){ zeroCount++; }else if(cur == 0){ //从最小值开始增加 cur = numbers[i]; }else { //判断当前数值是否与上一个数值连续,不连续用0代替,没有0则返回false if(cur + 1 != numbers[i]){ if(zeroCount == 0){ return false; }else{ //用0代替时,0的数量减一。i--抵消一次循环,仍用当前numbers[i]判断 zeroCount--; i--; } } //到这说明,下一个符合或者用0替代了,所以cur++ cur++; } } return true; } }
原文:https://www.cnblogs.com/MoonBeautiful/p/13074131.html