本文主要是介绍剑指offer——面试题44:扑克牌的顺子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
bool IsContinuous(int* numbers, int length)
{if(numbers == NULL || length < 1)return false;qsort(numbers, length, sizeof(int), compare);int numberOfZero = 0;int numberOfGap = 0;// 统计数组中0的个数for(int i = 0; i < length && numbers[i] == 0; ++i)++ numberOfZero;// 统计数组中的间隔数目int small = numberOfZero;int big = small + 1;while(big < length){// 两个数相等,有对子,不可能是顺子if(numbers[small] == numbers[big])return false;numberOfGap += numbers[big] - numbers[small] - 1;small = big;++big;}return (numberOfGap > numberOfZero) ? false : true;
}int compare(const void *arg1, const void *arg2)
{return *(int*)arg1 - *(int*)arg2;
}
这篇关于剑指offer——面试题44:扑克牌的顺子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!