Arrays 找到最小交换来严格排序2个数组,其中只能将A的第i个元素与B的第j个元素交换

Arrays 找到最小交换来严格排序2个数组,其中只能将A的第i个元素与B的第j个元素交换,arrays,algorithm,data-structures,Arrays,Algorithm,Data Structures,给定2个数组A和B,找到严格排序这两个数组所需的最小交换数 我知道这里有很多类似的问题,比如:但是这些问题中的约束只允许在数组A和B的第I个元素之间进行交换 如果约束被更改为能够与A的任何元素交换为B的任何元素(即,可以与B的任何第j个元素交换A的任何第I个元素),我该如何执行此操作 假设阵列是: 答:[9,3,3,2,1] B:[5,6,7,8] 我能得到的最小掉期数量(手动)是4 互换#1(互换1和8) 答:[9,3,3,2,8] B:[5,6,7,1] 互换#2(互换9和1) 答:[1,3

给定2个数组A和B,找到严格排序这两个数组所需的最小交换数

我知道这里有很多类似的问题,比如:但是这些问题中的约束只允许在数组A和B的第I个元素之间进行交换

如果约束被更改为能够与A的任何元素交换为B的任何元素(即,可以与B的任何第j个元素交换A的任何第I个元素),我该如何执行此操作

假设阵列是: 答:[9,3,3,2,1] B:[5,6,7,8]

我能得到的最小掉期数量(手动)是4

互换#1(互换1和8)

答:[9,3,3,2,8]

B:[5,6,7,1]

互换#2(互换9和1)

答:[1,3,3,2,8]

B:[5,6,7,9]

互换#3(互换2和5)

答:[1,3,3,5,8]

B:[2,6,7,9]

交换4(交换3和2)

答:[1,2,3,5,8]

B:[3,6,7,9]

另外,我不确定这是否是最低限度,因为我不知道如何开始


谢谢。

对于这个特定的示例,可以证明最小值是3,但我不知道任何输入的解决方案。也许这可能是一个NP难问题。另外,当一个特定值出现三次或三次以上时,没有解决方案。请问您是如何得到最小值3来严格排序上述示例的?我一直在尝试,但我找不到一种方法来获得最低3。我错了,4是最低的。在A中,您可以看到数字1和2不能停留在原来的位置,因为它们是整体最小的。同样,9不能停留在它所在的地方,因为它是最伟大的。最后,两个3中的一个必须移动,因为同一数组中不允许重复。所以我们至少有四个数字需要移动。一次交换只能改变A中的一个数字,所以最小值是4。对于这个特定的例子,可以证明最小值是3,但我不知道任何输入的解决方案。也许这可能是一个NP难问题。另外,当一个特定值出现三次或三次以上时,没有解决方案。请问您是如何得到最小值3来严格排序上述示例的?我一直在尝试,但我找不到一种方法来获得最低3。我错了,4是最低的。在A中,您可以看到数字1和2不能停留在原来的位置,因为它们是整体最小的。同样,9不能停留在它所在的地方,因为它是最伟大的。最后,两个3中的一个必须移动,因为同一数组中不允许重复。所以我们至少有四个数字需要移动。一次交换只能在A中更改一个数字,因此最小值为4。