//思路:使用大小王来补充中间差的牌
//为了方便统计大小王,先进行排序。
public boolean isContinuous(int [] numbers) {
if(numbers==null || numbers.length!=5){
//必须是5张牌,形成顺子
return false;
}
Arrays.sort(numbers);
int n =numbers.length;
int cnt=0; //统计大小王数量
for(int i=0;i<n;i++){
if(numbers[i]==0){
cnt++;
}else{
break;
}
}
for(int i=cnt;i<n-1;i++){
if(numbers[i]==numbers[i+1]){ //牌相等,不可能形成顺子
return false;
}
int diff = numbers[i+1]-numbers[i]-1;
cnt -= diff;
}
return cnt>=0;
}
www.mianshi.online,www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!