剑指Offer44 扑克牌的顺子

时间:2023-03-10 02:19:48
剑指Offer44 扑克牌的顺子
 /*************************************************************************
> File Name: 44_ContinuesCards.cpp
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年09月04日 星期日 19时55分44秒
************************************************************************/ #include <stdio.h>
#include <stdlib.h> int cmp(const void *a, const void *b)
{
return *(int*)a - *(int*)b;
} bool isContinues(int* nums, int length)
{
if (nums==NULL || length!=)
return false; qsort(nums, length, sizeof(int), cmp); int ZeroNum = ;
int GapNum = ; for (int i = ; i < length; ++i)
{
if (nums[i] == )
ZeroNum ++; if (ZeroNum > ) // 大小王最多两个
return false; if (i >= )
{
if (nums[i]!= && (nums[i]-nums[i-])==)
return false; // 重复数字 if (nums[i-]!= && (nums[i]-nums[i-])>)
GapNum += nums[i]-nums[i-] - ;
}
} if (GapNum > ZeroNum)
return false; return true;
} int main()
{
int nums[] = {, , , , };
int length = ; if (isContinues(nums, length))
printf("True\n");
else
printf("False\n");
return ;
}