题目描述
从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
示例
思路
先定义最大值和最小值
如果有相同的,直接返回 false
遇到 0 直接跳过,不参与最大值最小值
最后如果 max - min <= 4,则代表为顺子
小于 4 的是因为可能有王的存在
代码
class Solution {
public boolean isStraight(int[] nums) {
HashSet set = new HashSet();
int min = 14;
int max = 0;
for(int i = 0;i<5;i++){
if(nums[i]==0){
continue;
}
if(set.add(nums[i])){
max = Math.max(max,nums[i]);
min = Math.min(min,nums[i]);
}else{
return false;
}
}
if(max - min <= 4){
return true;
}else{
return false;
}
}
}
结果
版权声明:本文为weiyi_1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。