判断是否为扑克牌顺子

2018/05/20 Offer 共 350 字,约 2 分钟

title

problem link

五张牌,其中大小鬼为癞子,牌面大小为 0。判断是否能组成顺子。

solution

1、排序

2、计算所有相邻数字间隔总数

3、计算0的个数

4、如果2、3相等,就是顺子

5、如果出现对子,则不是顺子

public boolean isContinuous(int[] nums) {
    if (nums.length < 5)
        return false;
    Arrays.sort(nums);
    int cnt = 0;
    for (int num : nums)
        if (num == 0)
            cnt++;
    for (int i = cnt; i < nums.length - 1; i++) {
        if (nums[i + 1] == nums[i])
            return false;
        cnt -= nums[i + 1] - nums[i] - 1;
    }
    return cnt >= 0;
}

Search

    Table of Contents