首页 > 代码库 > 剑指Offer44 扑克牌的顺子

剑指Offer44 扑克牌的顺子

 1 /************************************************************************* 2     > File Name: 44_ContinuesCards.cpp 3     > Author: Juntaran 4     > Mail: JuntaranMail@gmail.com 5     > Created Time: 2016年09月04日 星期日 19时55分44秒 6  ************************************************************************/ 7   8 #include <stdio.h> 9 #include <stdlib.h>10 11 int cmp(const void *a, const void *b)12 {13     return *(int*)a - *(int*)b;14 }15 16 bool isContinues(int* nums, int length)17 {18     if (nums==NULL || length!=5)19         return false;20     21     qsort(nums, length, sizeof(int), cmp);22     23     int ZeroNum = 0;24     int GapNum  = 0;25     26     for (int i = 0; i < length; ++i)27     {28         if (nums[i] == 0)29             ZeroNum ++;30         31         if (ZeroNum > 2)            // 大小王最多两个32             return false;33         34         if (i >= 1)35         {36             if (nums[i]!=0 && (nums[i]-nums[i-1])==0)37                 return false;        // 重复数字38             39             if (nums[i-1]!=0 && (nums[i]-nums[i-1])>1)40                 GapNum += nums[i]-nums[i-1] - 1;41         }42     }43     44     if (GapNum > ZeroNum)45         return false;46     47     return true;48 }49 50 int main()51 {52     int nums[] = {4, 5, 0, 2, 0};53     int length = 5;54     55     if (isContinues(nums, length))56         printf("True\n");57     else58         printf("False\n");59     return 0;60 }

 

剑指Offer44 扑克牌的顺子