剑指 Offer 61 扑克牌中的顺子

Tag: 剑指-Offer Posted on 2022-02-27 23:19:32 Edited on 2022-02-27 23:19:32 Views: 302

概述

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

如果没有大小王的话,我们直接求和算出中间值,配合哈希表查一下是否存在就好了。

排序法

实现的时候注意牌重复的情况。

class Solution {
public:
    bool isStraight(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int kingNum = 0;
        int last = -1;
        for (auto n : nums) {
            if (n == 0) {
                kingNum ++;
            } else {
                if (last == -1 || last + 1 == n) {
                    last = n;
                } else {
                    if (last == n) return false;
                    if (n - last - 1 <= kingNum) {
                        kingNum -= n - last - 1;
                        last = n;
                        continue;
                    } else {
                        return false;
                    }
                }
            }
        }
        return true;
    }
};

未经允许,禁止转载,本文源站链接:https://iamazing.cn/