442. 数组中重复的数据 -中
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。
找到所有出现两次的元素。
示例:
输入:
[4,3,2,7,8,2,3,1]
输出:
[2,3]
方法一:collections模块的Counter类
class Solution:
def findDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
from collections import Counter
l = []
dic = Counter(nums)
for key, value in dic.items():
if value == 2:
l.append(key)
return l
方法二:set
class Solution:
def findDuplicates(self, nums):
l = []
s = set()
for i in nums:
if i in s:
l.append(i)
else:
s.add(i)
return l
延伸:collections.Counter类
- Counter 是一个有助于 hashable 对象计数的 dict 子类。元素-计数分别存储为字典的键和值,计数可以为任意整数,包括零和负数