面试题61:扑克牌中的顺子

题目

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

解题思路

  1. 把数组排序
    2)统计数组中0的个数
  2. 统计排序后数组中相邻数字之间的空缺总数。若空缺总数≤0的个数,那么这个数组是连续的,反之不是连续的
  3. 若数组中国非0数字重复出现,则该数组不是连续的。

代码

class Solution{
  public:
    bool isContinuous(int *number,int length)
    {
        for(int i = 0;ii;j--)
            {
                if(number[i]>number[j])
                {
                    int temp = number[i];
                    number[i]=number[j];
                    number[j]=temp;
                }
            }
        }
        
        int zero_sum = 0;
        int empty_sum = 0;
        for(int i =0;i= empty_sum)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
};

完整代码Github

你可能感兴趣的:(面试题61:扑克牌中的顺子)