【剑指Offer】扑克牌的顺子

题目

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public boolean isContinuous(int[] numbers) {
if (numbers == null || numbers.length < 1)
return false;

Arrays.sort(numbers);
int numOfZero = 0;
int numOfGap = 0;

for (int i = 0; i < numbers.length - 1; i++) {
if (numbers[i] == 0)
numOfZero++;
else if (numbers[i] == numbers[i+1])
return false;
else
numOfGap += numbers[i+1] - numbers[i] - 1;
}

return numOfZero >= numOfGap ? true : false;
}