gpt4 book ai didi

python - 如何通过 python 在超过 9000 个元素的列表中以更少的时间检查重复项

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:33 25 4
gpt4 key购买 nike

um 试图通过 python 检查整数列表中是否存在重复值。这是成功的,我发现当列表的大小增加时执行时间越来越长。如何改进以下逻辑的运行时间?

def containsDuplicate( nums):
if len(nums) < 2:
return False
cnt = 0
flag = False
length = len(nums)
while cnt < length:
p = cnt + 1
while p < length:
if nums[cnt] == nums[p]:
flag = True
break
p += 1
cnt += 1
return flag

最佳答案

你可以使用 set :

>>> lst = [1, 2, 3]
>>> len(set(lst)) != len(lst)
False
>>> lst = [1, 2, 2]
>>> len(set(lst)) != len(lst)
True

编辑:如评论中所指出的更快的版本:

>>> lst = [3] + list(range(10**4))
>>> seen = set()
>>> any(x in seen or seen.add(x) for x in lst)
True
>>> seen
set([0, 1, 2, 3])

关于python - 如何通过 python 在超过 9000 个元素的列表中以更少的时间检查重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30725700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com