【剑指 offer】扑克牌的顺序。

2019-05-09  本文已影响0人  邓泽军_3679

1、题目描述

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。

2~10为数字本身,A为1,J为11,Q为12,K为13,大小王可以看做任意数字。

为了方便,大小王均以0来表示,并且假设这副牌中大小王均有两张。

样例1:

输入:[8,9,10,11,12]
输出:true

样例2

输入:[0,8,9,11,12]
输出:true

2、问题描述:

3、问题关键:

4、C++代码:

class Solution {
public:
    bool isContinuous( vector<int> nums) {
        if (nums.empty()) return false;
        sort(nums.begin(), nums.end());
        int k = 0;
        while(!nums[k]) k ++;//去掉0.
        for (int i = k; i < nums.size() - 1; i ++) 
            if (nums[i] == nums[i + 1]) return false;// 如果有对子,直接false;
        if (nums.back() - nums[k] > 4) return false;//最大值最小值相差大于4,返回false;
        return true;
    }
};
上一篇下一篇

猜你喜欢

热点阅读