减少时间复杂度

问题描述

眼前的问题:在下面的编辑器中完成函数minimumSwaps。它必须返回一个整数,该整数表示对数组进行排序的最小交换次数。

我的方法:

def minimumSwaps(arr):
    count = 0
    temp = [None]*len(arr)
    res1=sorted(arr)
    
    while(res1!=arr):
        for i in range(int(len(arr))):
            if(res1[i]!=arr[i]):
               y=res1.index(arr[i])
              
               arr[y],arr[i]=arr[i],arr[y]
               count = count +1

    
    return count

在大多数情况下,该代码确实给出了所需的操作,但是由于时间限制超出错误,因此失败了。有人可以提出一些更改以减少时间复杂度问题并提高代码效率。如果可能的话,请尝试不要完全更改代码,我想学习提高代码效率,而不是尝试一种全新的方法。

Link to one of the huge test case

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)