题解 | #扑克牌顺子#
扑克牌顺子
http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4
1.由于大小王可以做任意数,所以需要统计五张牌牌中大小王的个数以及最大值与最小值;
2.分情况讨论:
a.没有0的情况下,且最大值-最小值 == 4,一定是顺子;
b.4张全是0的情况下,一定是顺子;
c.其他情况,最大值-最小值的值区间=[1,4];
public boolean IsContinuous(int [] numbers) {
//数组5个元素中,最大值与最小值之间的差为4
int min = numbers[0];
int max = 0;
int count = 0;
for(int i = 0; i < numbers.length; i++){
max = Math.max(max,numbers[i]);
if(numbers[i] != 0){
if(min == 0){
min = numbers[i];
}
if(min > numbers[i]){
min = numbers[i];
}
}else count++;
}
if(count == 0 && max - min != 4){
return false;
}else if(count == 4){
return true;
}
if(max - min <= 4 && max - min >= 1){
return true;
}
return false;
}
查看1道真题和解析