题解 | #扑克牌顺子#
扑克牌顺子
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; }