大小王的作用就是欢乐斗地主中的癞子身份,所以我们先统计出癞子的个数。
我们可以这么做,把问题换成将非癞子牌组成顺子需要多少张癞子,看癞子牌的数量够不够
然后将数组进行排序,接着当非癞子的那些牌能组成顺子的时候,我们去看癞子的数量是否小于0,小于0则证明癞子数不够组不成顺子,大于等于则能够组成。
public boolean IsContinuous(int [] numbers) {
if(numbers.length < 5)
return false;
Arrays.sort(numbers);
int cnt = 0;
// 0 0 2 3 4 6 8
for(int i = 0; i < numbers.length; i++){
if(numbers[i] != 0)
break;
cnt++;
}
for(int i = cnt; i < numbers.length-1; i++){
if(numbers[i+1] == numbers[i])
return false;
cnt -= numbers[i+1]-numbers[i]-1;
}
return cnt>=0;
}

京公网安备 11010502036488号