给你一个整数数组 nums
,该数组具有以下属性:
nums.length == 2 * n
.nums
包含n + 1
个 不同的 元素nums
中恰有一个元素重复n
次
找出并返回重复了 n
次的那个元素。
示例 1:
输入:nums = [1,2,3,3] 输出:3
示例 2:
输入:nums = [2,1,2,5,3,2] 输出:2
示例 3:
输入:nums = [5,1,5,2,5,3,5,4] 输出:5
提示:
2 <= n <= 5000
nums.length == 2 * n
0 <= nums[i] <= 104
nums
由n + 1
个 不同的 元素组成,且其中一个元素恰好重复n
次
长度为 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;
};