题目描述:从扑克牌中随机抽5 张牌,判断是不是一个顺子,即这5 张牌是不是
连续的。2~10 为数字本身,A 为1,J 为11,Q 为12,K 为13,大小王可以看成
任意数字。
思路:用数组记录五张扑克牌,将数组调整为有序的,大小王当成0,若 0 出现的次数>=顺子的 差值,即为顺子。
代码实现:
public static boolean isContinuous(int [] numbers) {
if (numbers == null || numbers.length == 0) {
return false;
}
int count = 0;
int diff = 0;
Arrays.sort(numbers);
for (int i = 0; i < numbers.length - 1; i++) {
if (numbers[i] == 0) {
count++;
continue;
}
if (numbers[i] == numbers[i+1]) {
return false;
}
diff += numbers[i+1] - numbers[i] - 1;
}
return diff <= count;
}