In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeated N times.
Return the element repeated N times.
Example 1:
Input: [1,2,3,3]
Output: 3
Example 2:
Input: [2,1,2,5,3,2]
Output: 2
Example 3:
Input: [5,1,5,2,5,3,5,4]
Output: 5
Note:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length is even
这题其实我转为找重复数字了,因为按题意,两个是一样的解法。
class NRepeatedElementInSize2NArray : public Solution {
public:
void Execute() {
std::cout << "Case 1: " << repeatedNTimes(vector<int>{1,2,3,3}) << std::endl;
std::cout << "Case 2: " << repeatedNTimes(vector<int>{5,1,5,2,5,3,5,4}) << std::endl;
}
int repeatedNTimes(const vector<int>& A) {
unordered_set<int> rset;
for (auto v : A) {
if (rset.count(v) != 0) {
return v;
}
rset.insert(v);
}
return 0;
}
};