- Contains Duplicate
题目要求查找数组中是否有两个相同的元素。首先想到的是双遍历比较,不过这样时间和空间复杂度都太大。可以先对数组进行排序再逐次比较相邻的两个元素。
int cmp(const int* a, const int* b){
return *a - *b;
}
bool containsDuplicate(int* nums, int numsSize) {
qsort(nums, numsSize, sizeof(int), cmp);
if (numsSize < 2){
return false;
}
int i;
for (i=0; i<(numsSize-1); i++){
if (nums[i] == nums[i+1]){
return true;
}
}
return false;
}