我正在尝试解决最小交换的hackerrank问题。我的回答有误,无法找出错误。
为您提供了一个无序数组,该数组由连续的整数组成,没有重复。您可以交换任意两个元素。您需要找到按升序对数组进行排序所需的最小交换次数。
def minimumSwaps(arr):#arr is the given input
swaps = 0
mod_arr = [i-1 for i in arr]
for i,X in enumerate(mod_arr):
if(i==X):
continue
else:
mod_arr[i],mod_arr[mod_arr.index(i)] = mod_arr[mod_arr.index(i)],mod_arr[i]
swaps+=1
return swaps