在大小为 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
为偶数
长度为 2N
,共 N+1
个不同元素,其中一个元素出现 N
次,说明其它元素各不相同。
遍历数组,只要出现重复元素,它就是我们要找的重复 N
次的元素。
class Solution:
def repeatedNTimes(self, nums: List[int]) -> int:
s = set()
for num in nums:
if num in s:
return num
s.add(num)
class Solution {
public int repeatedNTimes(int[] nums) {
Set<Integer> s = new HashSet<>();
for (int num : nums) {
if (s.contains(num)) {
return num;
}
s.add(num);
}
return -1;
}
}
class Solution {
public:
int repeatedNTimes(vector<int>& nums) {
unordered_set<int> s;
for (auto &num : nums) {
if (s.find(num) != s.end()) {
return num;
}
s.insert(num);
}
return -1;
}
};
/**
* @param {number[]} nums
* @return {number}
*/
var repeatedNTimes = function(nums) {
const s = new Set();
for (const num of nums) {
if (s.has(num)) {
return num;
}
s.add(num);
}
return -1;
};