- 重复 N 次的元素
题目描述
在大小为 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 为偶数
Python1
from collections import Counter
class Solution(object):
def repeatedNTimes(self, nums):
m = Counter(nums)
n = len(nums) // 2
for k, v in m.items():
if v == n:
return k
"""
:type nums: List[int]
:rtype: int
"""
思路:
用哈希表统计每个数在序列中出现的次数,返回出现了 N 次的数。
Python2(官方答案)
class Solution(object):
def repeatedNTimes(self, nums):
count = collections.Counter(nums)
for k in count:
if count[k] > 1:
return k
"""
:type nums: List[int]
:rtype: int
"""
思路:
直接计数元素的个数。利用 HashMap 或者数组,这里使用 HashMap。
然后,元素数量超过 1 的就是答案。
注:共2N个元素,1个元素出现了N次,,一共有N+1个元素,则剩下的元素都是不重复的,唯一的。