public boolean isStraight(int[] nums) {
Set<Integer> repeat = new HashSet<>();
int max = 0, min = 14;
for(int num : nums) {
// 跳过大小王 不用考虑有几个大小王 因为不重复且最大-最小<5是形成顺子必然事件
if(num == 0) {
continue;
}
// 最大牌
max = Math.max(max, num);
// 最小牌
min = Math.min(min, num);
// 若有重复,提前返回 false
if(repeat.contains(num)) {
return false;
}
repeat.add(num); // 添加此牌至 Set
}
// 最大牌 - 最小牌 < 5 则可构成顺子
return max - min < 5;
}


被折叠的 条评论
为什么被折叠?



