根据题意,共有2N个数,其中不重复的有N+1个,重复的数字有N个
由鸽巢原理可知,必然只有一个元素重复了
所以只需要在遍历数组的过程中,若发现有数字出现过了,则重复N遍的数字就是它了
用基于哈希的map结构来实现
class Solution {
public:
int repeatedNTimes(vector<int>& A) {
map<int,int> record;
int i,n=A.size(),ans;
for(i=0;i<n;i++)
{
if(record.find(A[i])!=record.end())
{
ans=A[i];
break;
}
record[A[i]]=1;
}
return ans;
}
};