扑克牌中的顺子问题(超内存)
我用快排对数据进行排序,结果显示超出限制内存,用自带的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);
}