算法系列——扑克牌中的顺子(剑指offer)

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——扑克牌中的顺子(剑指offer)相关的知识,希望对你有一定的参考价值。

题目

从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。

链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof

思路

使用set判断 重复,如果重复直接返回,反之记录最大最小值
最大最小值之差小于5则为顺子

代码

class Solution 
    public boolean isStraight(int[] nums) 
        int max = 0;
        int min = 14;
        Set<Integer> set = new HashSet<>();
        for(int i = 0; i<nums.length; i++)
            if(nums[i]==0) 
                continue;
            
            if(set.contains(nums[i])) 
                return false;
            
            set.add(nums[i]);
            max = Math.max(max,nums[i]);
            min = Math.min(min,nums[i]);
        
        return max-min<5;
    


以上是关于算法系列——扑克牌中的顺子(剑指offer)的主要内容,如果未能解决你的问题,请参考以下文章

算法剑指 Offer 61. 扑克牌中的顺子 重刷

#yyds干货盘点#剑指 Offer 61. 扑克牌中的顺子

剑指offer系列——45.扑克牌顺子

剑指 Offer-扑克牌中的顺子

剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子 剑指 Offer 40. 最小的k个数

剑指offer 扑克牌中的顺子