我目前正在经历我能找到的所有Hackerrank挑战,而我最近遇到的主要问题之一是由于超时,因为使用大量信息时我编写的代码往往非常慢。在此示例中,我需要计算要在数组中进行排序的最少数量的开关。请记住,其中没有重复的数字。这是我当前的代码:
def minimumSwaps(arr):
count = 0
while arr != [(x+1) for x in range(len(arr))]:
for i in arr:
if i != arr.index(i)+1:
a = i
b = arr[i-1]
arr[i-1] = a
arr[arr.index(i)] = b
count += 1
break
return count
if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().rstrip().split()))
res = minimumSwaps(arr)
print(str(res))
任何有关如何使其更快的建议将不胜感激。预先感谢!