【剑指 offer】扑克牌顺子

题目描述:

大小王看作0,判断是否是顺子。

思路:

间隔数少于等于0的个数。

代码:

class Solution {
public:
    bool IsContinuous( vector<int> numbers ) {
        if (numbers.empty()) return false;
        sort(numbers.begin(), numbers.end());
        int cnt = 0;
        int st = 0;
        for (int i=0; i<numbers.size(); ++i) {
            if (numbers[i] == 0) cnt++;
            else if (st == 0)
                st = numbers[i];
            else {
                if (numbers[i] == st) return false;
                if (numbers[i] != st + 1)
                    cnt -= numbers[i] - st - 1;
                st = numbers[i];
            }
            if (cnt < 0) return false;
        }
        return true;
    }
};

发现自己刷题,全靠样例和编译器试。。bugfree,编译器自由,还能实现么。
记录这道题因为,剑指offer一刷完成。。QAQ。
开始刷leetcode,希望早日刷完。呵呵呵呵呵。

猜你喜欢

转载自blog.csdn.net/iCode_girl/article/details/89604131