
import java.util.Arrays;
public class Solution {
public boolean isContinuous(int[] numbers) {
int numOfZero = 0;
int numOfInterval = 0;
int length = numbers.length;
if(length == 0){
return false;
}
Arrays.sort(numbers);
for (int i = 0; i < length - 1; i++) {
// 计算癞子数量
if (numbers[i] == 0) {
numOfZero++;
continue;
}
// 对子,直接返回
if (numbers[i] == numbers[i + 1]) {
return false;
}
numOfInterval += numbers[i + 1] - numbers[i] - 1;
}
if (numOfZero >= numOfInterval) {
return true;
}
return false;
}
}
numOfInterval += numbers[i + 1] - numbers[i] - 1;
这个计算2个数字之间的差值(这个差值是指的完成顺子) 例如 2 和 3满足顺子,相减结果为1,所以要减去1,结果为0, 例如2 和 4,要满足顺子,中间必须加上一个3,也就是需要加上一个数,所以4-2-1-=1
举个栗子如1, 0, 3, 0, 5这个,如果计算最大值和最小值那么是(5-1)得出4中间相差3个数字,但是joker只有两张补不上。但实际上(3-1)得出2差一个,(5-3)得出2差一个,一共确实是差两个,joker也刚好有两张