【发布时间】:2018-12-12 02:04:20
【问题描述】:
如果一个列表可以通过交换其中一个列表中的最多一对元素从另一个列表中获得,则两个列表称为相似列表。我解决了这个问题,但我需要让它在 4 秒(Python3)内运行所有输入。有什么想法可以提高效率吗?
def areSimilar (a,b):
counter=0
for i in range(len(a)):
for j in range(len(b)):
if counter < 1 and a[i]!=b[i]:
if a[i]==b[j]:
temp=b[j]
b[j]=b[i]
b[i]=temp
counter+=1
else:
flag=False
if a == b:
flag=True
else:
flag = False
return flag
a= [832, 998, 148, 570, 533, 561, 894, 147, 455, 279]
b= [832, 998, 148, 570, 533, 561, 455, 147, 894, 279]
p=areSimilar(a,b)
我认为嵌套循环是我的问题。
【问题讨论】:
-
这是在进行中的比赛吗
-
你是什么意思??
-
你说你解决了这个问题,所以这个问题在像 codechef、hackerrank 等正在进行的竞争中也是如此。
-
已删除——坏主意
-
@Abrar 你说你解决了这个问题,所以这个问题在像 codechef、hackerrank 等正在进行的竞争中也是如此。
标签: python python-3.x list optimization