剑指 Offer 61. 扑克牌中的顺子


剑指 Offer 61. 扑克牌中的顺子

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

示例  1:
输入: [1,2,3,4,5]
输出: True

示例  2:
输入: [0,0,1,2,5]
输出: True

限制:
数组长度为 5 
数组的数取值为 [0, 13] .

class Solution {
    public boolean isStraight(int[] nums) {
        Set<Integer> repeat = new HashSet<>();
        int max = 0, min = 14;
        for(int num : nums) &#123;
            if(num == 0) continue; // 跳过大小王
            max = Math.max(max, num); // 最大牌
            min = Math.min(min, num); // 最小牌
            if(repeat.contains(num)) return false; // 若有重复,提前返回 false
            repeat.add(num); // 添加此牌至 Set
        &#125;
        return max - min < 5;// 最大牌 - 最小牌 < 5 则可构成顺子
            //&& max - min >=2; // max - min >=2  加不加 都可以
    &#125;

// 作者:jyd
// 链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-de-shun-zi-lcof/solution/mian-shi-ti-61-bu-ke-pai-zhong-de-shun-zi-ji-he-se/
&#125;

解析
image.png


文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
14. 最长公共前缀 14. 最长公共前缀
14. 最长公共前缀难度简单 1479编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1:输入:strs = [“flower”,”flow”,”flight”]输出:“fl
下一篇 
剑指 Offer 21. 调整顺序使奇数位于偶数前面 剑指 Offer 21. 调整顺序使奇数位于偶数前面
categories: [Blog,Algorithm] 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面难度简单 84输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半
2021-03-02 future
  目录