美文网首页
剑指 Offer 第61题:扑克牌中的顺子

剑指 Offer 第61题:扑克牌中的顺子

作者: 放开那个BUG | 来源:发表于2022-08-15 00:04 被阅读0次

1、前言

题目描述

2、思路

检查是否是顺子: 首先应该进行排序,然后统计 0 的个数, 最后统计相邻数字之间的间隔个数。 如果0 的次数 大于等于 间隔的次数,则是顺子,否则不是顺子。另外,如果出现非0外的相同的数,即对子,则不是顺子。 如:{0,1,3,4,5} 中 0 的个数为 1, 间隔个数为 1,则是顺子; {0,1,3,4,6}中 0 的

3、代码

class Solution {
    public boolean isStraight(int[] nums) {
        if(nums == null || nums.length == 0){
            return false;
        }
        int any = 0, sum = 0;
        Arrays.sort(nums);
        for(int i = 0; i < nums.length - 1; i++){
            if(nums[i] == 0){
                any++;
                continue;
            }
            if(nums[i] == nums[i + 1]){
                return false;
            }
            sum += nums[i + 1] - nums[i] - 1;
        }

        return any >= sum;
    }
}

相关文章

网友评论

      本文标题:剑指 Offer 第61题:扑克牌中的顺子

      本文链接:https://www.haomeiwen.com/subject/exobbrtx.html