「每日LeetCode」2021年2月21日

本文最后更新于:2023年3月19日 晚上

Lt961. 重复 N 次的元素

961. 重复 N 次的元素

在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
 示例 1:

1
2
输入:[1,2,3,3]
输出:3

示例 2:

1
2
输入:[2,1,2,5,3,2]
输出:2

示例  3:

1
2
输入:[5,1,5,2,5,3,5,4]
输出:5

提示:

  1. 4 <= A.length <= 10000
  2. 0 <= A[i] < 10000
  3. A.length 为偶数

思路

本题得到的元素为 n/2 个,不能直接使用摩尔投票。用哈希表记录次数,当出现次数为 n/2 次时,返回元素。

解答

1
2
3
4
5
6
7
8
9
10
11
12
/**
* @param {number[]} A
* @return {number}
*/
var repeatedNTimes = function (A) {
const count = A.length / 2;
const map = new Map();
for (const e of A) {
if (map.get(e) + 1 === count) return e;
else map.set(e, map.has(e) ? map.get(e) + 1 : 1);
}
};