解题思路
原先暴力运算,即一个一个比较会超出时间限制,所以可以不一个一个比较,而我们的关键是找相同数字,即如果先给这个数组排序下的话,这样一样的数字就会出现在一起,这样的话比较就不用暴力比较了,直接取相邻的数字之间进行比较即可。
代码
int px(int *a,int *b)
{
int x,y;
x=*a;
y=*b;
return x-y;
}
bool containsDuplicate(int* nums, int numsSize){
int i,j;
if (nums == NULL || numsSize <= 0) {
return false;
}
qsort(nums,numsSize,sizeof(int),px);
for(i=0;i+1<numsSize;i++)
{
if(nums[i]==nums[i+1])
return true;
}
return false;
}