扑克牌的顺子是几张(每日算法题之扑克牌顺子)
导读:JZ61 扑克牌顺子 描述 现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。 有如下规则:...
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<Integer> 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; } }创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!