在大小为 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
class Solution {
public:
int repeatedNTimes(vector<int>& A) {
size_t n = A.size() / 2;
unordered_map<int, int> m;
for (auto e : A)
m[e]++;
for (auto &e : m)
{
if (e.second == n)
return e.first;
}
return 0;
}
};
总结,这道题直接借助STL中的unordered_map,unordered_map底层是桶排序,用键值对中的key当作下标,value当作计数