我使用此算法来查找所需的最小交换次数,但这不能为所有测试用例提供正确的结果。谁能帮助我找出在哪些情况下无法给出正确正确的结果以及原因。
def minimumSwaps(arr):
if len(arr) == 1 or len(arr) == 0:
return 0
e = min(arr)
if e == arr[0]:
return 0 + minimumSwaps(arr[1:])
else:
k = arr.index(e)
arr[0], arr[k] = e, arr[0] # or use swap(arr, 0, k)
return 1 + minimumSwaps(arr[1:])