普通人思路:
创立一个计数数组对原数组进行计数如果大于1直接返回结果。
int duplicateInArray(vector[HTML_REMOVED]& nums)
{
int n=nums.size();
if(n<1)
return -1;//如果空数组直接返回-1
vector[HTML_REMOVED] count(n);
fill(count.begin(),count.end(),0);//stl函数初始化为0
for(auto i:nums)
{
if(i<0||i>n-1)
return -1;
}//检查数组元素
for(int i=0;i<n;i++)
{
count[nums[i]]++;
if(count[nums[i]]>1)
return nums[i];
}
return -1;//没有重叠返回-1
}
不知道为什么贴代码会这样,有知道的可以说一下,谢谢