ACWING81. 撲克牌的順子(劍指offer)

從撲克牌中隨機抽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

class Solution {
public:
    bool isContinuous( vector<int> numbers ) {
        int n = numbers.size();
        if(n == 0) return false;
        sort(numbers.begin(),numbers.end());
        int zero = 0;
        for(int i = 0;i < n;i++) {
            if(numbers[i] == 0) {
                zero++;
                continue;
            }
            if(i >= 1 && numbers[i - 1] != 0){
                int num = numbers[i] - numbers[i - 1];

                if(num == 1) continue;
                else if(num > 1 && zero >= num - 1)  {
                    zero -= num - 1;
                }
                else return false;
            }
        }
        return true;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章