通用解法的思想:
直接遍历列表,使用字典存储 每个元素以及出现的次数。(应该也适用于找出其他可迭代对象中的重复元素,如tuple,set,str)
可以设置返回value>1的键值对。
时间复杂度:O(n)/O(2n)
代码:python
def checkRepeat(s:list):
#遍历列表,存储每个元素及其出现次数
dict1 = {}
for i in s:
if i not in dict1:
dict1[i] = 1
else:
dict1[i] += 1
#设置新的字典存储value值>1的键值对
dict2 = {}
for k,v in dict1.items():
if v>1:
dict2[k] = v
return dict2
if __name__=='__main__':
s = [1,2,3,1,2,4,5]
dict2 = checkRepeat([1,2,3,1,2,4,5])
print(dict2)
输出结果
{1: 2, 2: 2}