剑指offer-面试题61-扑克牌中的顺子-数组

/*
题目:
	从扑克牌中随机抽取n个数字,判断他们是否连续,扑克牌从A~K,大小王可代替任意数字。
*/
#include<iostream>
#include<cstdlib>
#include<stack>
#include<cstring>
#include<vector>
#include<deque>
#include<cmath>

using namespace std;

int compare(const void* arg1, const void* arg2){
    return *(int*)arg1 - *(int*)arg2;
}

bool isContinuous(int numbers[],int length){

    qsort(numbers,length,sizeof(int),compare);
    int Count = 0;
    for(int i = 0; i < length; i++){
        if(numbers[i] == 0){
            Count++;
        }else{
            break;
        }
    }
    int small  = Count;
    int big = small + 1;
    int gap = 0;
    while(big < length){
        if(numbers[small] == numbers[big]){
            return false;
        }else{
            gap += (numbers[big] - numbers[small] - 1);
        }
        small++;
        big++;
    }

    return gap > Count ? false : true;
}

int main()
{
    int a[] = {0,2,4,7,0};
    cout<<isContinuous(a,5);

}

   

猜你喜欢

转载自www.cnblogs.com/buaaZhhx/p/12116565.html
今日推荐