问题:
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
解答:
/*我写的*/
#include<stdio.h>
#include<stdlib.h>
bool containsDuplicate(int* nums, int numsSize);
void main()
{
int tmp;
int nums[5]={0,1,2,3,4};
tmp=containsDuplicate(nums,5); //调用形参,传递的是数组首地址
printf("%d\n",tmp); //注意:return不输出,若想输出打印就要printf!
system("pause");
}
bool containsDuplicate(int* nums, int numsSize)
{
int i,j;
for(i=0;i<numsSize-1;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(nums[i]==nums[j]) //误区:若指针p指向了nums[0],那么*p就是nums[0]!所以不要nums[*p],这样是错的!
{
return true;
}
}
}
return false;
}