扑克牌中的顺子问题(超内存)

我用快排对数据进行排序,结果显示超出限制内存,用自带的sort就没问题。我没看出我这哪里超内存了。。。求各位大佬帮看看。

bool IsContinuous( vector<int> numbers ) {
    int size=numbers.size();
    if(size==0)
        return false;
    if(size==1)
        return true;
    //sort(numbers.begin(),numbers.end());
    quickSort(numbers,0,size-1);
    int numsofzero=0;
    int index=0;
    while(numbers[index]==0&&index<size)
    {
        ++numsofzero;
        ++index;
    }
    ++index;
    int countMiss=0;
    for(;index<size;++index)
    {
        int a=numbers[index]-numbers[index-1]-1;
        if(a<0)
            return false;
        countMiss+=a;
    }
    if(countMiss<=numsofzero)
        return true;
    else
        return false;
}
void quickSort(vector<int> &nums,const int &start,const int &end)
{
    if(start==end)
        return;
    int value=nums[end];
    int smallPos=start;
    for(int i=start;i<end;++i)
    {
        if(nums[i]<value)
        {
            if(smallPos!=i)
                swap(nums[i],nums[smallPos]);
            ++smallPos;
        }
    }
    swap(nums[end],nums[smallPos]);
    quickSort(nums,start,smallPos-1);
    quickSort(nums,smallPos+1,end);
}


#笔试题目#
全部评论

相关推荐

一表renzha:你点进去没打招呼他也会有提示的,之前我点进美的,还没打招呼,他马上给我发了不太合适哦
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务