每日算法题之扑克牌顺子
JZ61 扑克牌顺子
描述
现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。
有如下规则:
1. A为1,J为11,Q为12,K为13,A不能视为14
2. 大、小王为 0,0可以看作任意牌
3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。
4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]
具体做法:
将 nums 数组依次装入 set集合,遇到 0 则返回装下一个元素,出现重复元素则返回 false,并在其中记录max,min,最终max-min >= 5的都不是顺子;
代码
package esay.JZ61扑克牌顺子;
import java.util.HashSet;
public class Solution {
public boolean IsContinuous(int [] numbers) {
HashSet set = new HashSet<>();
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int number : numbers) {
if (number == 0) continue;
if (set.contains(number)) {
return false;
} else {
set.add(number);
}
max = Math.max(max, number);
min = Math.min(min, number);
}
return max - min < 5;
}
}
当前文章:每日算法题之扑克牌顺子
文章起源:http://pwwzsj.com/article/dsopdsc.html