剑指offer 面试题61:扑克牌中的顺子 c++

题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而 大小王可以看成 任意数字

思路:以大小王为0,0可以代替任何数字。先对序列进行排序,然后算数组中0的个数,计算数组空缺 总数,如果空缺总数大于0的个数,不是顺子,否则是顺子。注意如果5张牌发现有 对子,肯定不是顺子

class Solution {
public:
    bool IsContinuous( vector numbers ) {
        if(numbers.empty()) return false;
        sort(numbers.begin(),numbers.end());
        int n=numbers.size(),numzero=0,gap=0;
        for(int i=0;i=gap ? true : false;    //如果0的个数大于差值的个数返回true
    }
};

 

你可能感兴趣的:(数据结构/算法/刷题,#)