扑克牌顺子

扑克牌顺子

https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&&tqId=11198&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

大小王的作用就是欢乐斗地主中的癞子身份,所以我们先统计出癞子的个数。
我们可以这么做,把问题换成将非癞子牌组成顺子需要多少张癞子,看癞子牌的数量够不够
然后将数组进行排序,接着当非癞子的那些牌能组成顺子的时候,我们去看癞子的数量是否小于0,小于0则证明癞子数不够组不成顺子,大于等于则能够组成。

public boolean IsContinuous(int [] numbers) {
        if(numbers.length < 5)
            return false;
        Arrays.sort(numbers);
        int cnt = 0;
        // 0 0 2 3 4 6 8
        for(int i = 0; i < numbers.length; i++){
            if(numbers[i] != 0)
                break;
            cnt++;
        }

        for(int i = cnt; i < numbers.length-1; i++){
            if(numbers[i+1] == numbers[i])
                return false;
            cnt -= numbers[i+1]-numbers[i]-1;
        }
        return cnt>=0;
    }
剑指offer 文章被收录于专栏

为刷过的每一道题都书写一篇题解,便于重复练习~

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务