每当我在在线平台上编写代码时,不知何故我不得不将列表中的元素相互比较,我就使用下面的代码,据我所知,这是最有效的。这是我练习的最后一个代码。它是为了找出两个相同元素之间的最大索引。你知道吗
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的函数更容易。也不要将变量命名为python类型,比如
list
。你知道吗输出-
时间复杂度:O(n)
您可以按相等的元素分组,然后找出组中的差异,并保持最大值:
输出
这种方法的复杂性是
O(n)
。你知道吗相关问题 更多 >
编程相关推荐