从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
判断条件:最大的数字减最小的数字 < 5 && 除 0 外没有重复数字
判断 有没有重复使用的Set,加进去的数字数量a和set中的数量b,如果相等表示没有重复。
public class Solution {
public boolean isContinuous(int [] numbers) {
if (numbers == null || numbers.length != 5) return false;
Arrays.sort(numbers);
int i = 0, j = numbers.length - 1;
while(numbers[i] == 0) i++;
Set<Integer> set = new HashSet<>();
for (int k = i ; k <= j; k++) {
set.add(numbers[k]);
}
return numbers[j] - numbers[i] < 5 && set.size() == j - i + 1;
}
}
网友评论