从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14
解题思路
由题目我们知道, 除了0(大小王)之外必须没有重复数字, 并且最大最小值的差值必须小于 5 因为顺子中不含重复数字, 顺子中两个牌差值最大为4
代码
class Solution {
public boolean isStraight(int[] nums
) {
HashSet
<Integer> set
= new HashSet<>();
int max
= 0, min
= 14;
for (int num
: nums
) {
if (num
== 0) {
continue;
}
if (set
.contains(num
)) {
return false;
}
set
.add(num
);
if (num
> max
) {
max
= num
;
}
if (num
< min
) {
min
= num
;
}
if (max
- min
>= 5) {
return false;
}
}
return true;
}
}