题解 | #扑克牌顺子#

扑克牌顺子

https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

#include <algorithm>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param numbers int整型vector
     * @return bool布尔型
     */
    bool IsContinuous(vector<int>& numbers) {
        // write code here
        sort(numbers.begin(), numbers.end());
        // 记录大小王的个数
        int count = 0;
        // 记录当前要比对的牌面
        int temp = -1;
        for (int i = 0; i < numbers.size() - 1; ++i) {
            if (temp < numbers[i]) {
                temp = numbers[i];
            }
            // 有四个大小王,必定是顺子
            if (count == 4) {
                return true;
            }
            if (numbers[i] == 0) {
                count++;
            }
            // 判断当前值与下一个值是否连续
            // 不连续则消耗一个大小王的个数来补充一次缺失的下一位
            else if (temp + 1 != numbers[i + 1]) {
                if (count == 0) {
                    return false;
                } else {
                    temp += 1;
                    count--;
                    // 用补充的牌面与之前牌面的下一位重新比对,看是否能完成填充
                    i--;
                }
            }
        }
        return true;
    }
};

全部评论

相关推荐

昨天 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务