在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
示例 1:
输入:[1,2,3,3]
输出:3
示例 2:
输入:[2,1,2,5,3,2]
输出:2
示例 3:
输入:[5,1,5,2,5,3,5,4]
输出:5
提示:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length 为偶数
思路
这道题限制的过多了个人感觉,n个元素出现且仅出现1次,1个元素重复出现n次
所以直接找出出现超过一次的元素即可
性能分析
暴力遍历,时间复杂度O(N),暴力打表,空间复杂度O(N)
具体代码
int table[10024] = {0};
int repeatedNTimes(vector<int>& A) {
for(int i = 0; i < A.size(); i++){
table[A[i]]++;
if(table[A[i]] == 2){
return A[i];
}
}
return 0;
}