以下是一个不使用计数器进行优化的解决方法的代码示例:
def find_duplicates(nums):
duplicates = []
seen = set() # 用一个集合来存储已经出现过的元素
for num in nums:
if num in seen: # 如果元素已经在集合中出现过,则将其添加到重复元素列表中
duplicates.append(num)
else:
seen.add(num) # 否则将元素添加到集合中
return duplicates
# 示例用法
nums = [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9]
print(find_duplicates(nums))
这个解决方法使用了一个集合来存储已经出现过的元素。遍历列表中的每个元素,如果元素已经在集合中出现过,则将其添加到重复元素列表中;否则将元素添加到集合中。最后返回重复元素列表。这种方法的时间复杂度为O(n),空间复杂度为O(k),其中n是列表中的元素数量,k是重复元素的数量。
下一篇:不使用基于推送常量的顶点属性