每当我在在线平台上编码并且以某种方式必须将列表的元素相互比较时,我都会使用以下代码,根据我的说法,这是最有效的。这是我练习的最后一个代码。目的是找到两个相同元素之间的最大索引。
max=0
for i in range(len(mylist)):
if max==(len(mylist)-1):
break
for j in range(i + 1, len(mylist)):
if mylist[i] == mylist[j]:
if max>(abs(i-j)):
max=abs(i-j)
它运行了大部分测试用例,但有时会显示“超出时间限制”。我知道这与约束和时间复杂度有关,但我仍然找不到更好的方法。如果有人能帮助我,那就太好了。
最佳答案
在 Python 中使用基于 C 的函数更容易。另外,不要将变量命名为 list
之类的 Python 类型。
x = [item for i, item in enumerate(l) if item in l[i+1:]]
# do something with list of values
关于python - 如何提高比较列表元素的效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174510/