我们说我们有两个数组: 数组a1和数组a2。
' A1'和' a2'两者具有相似的大小和相同的元素,但元素不会以相同的顺序出现。
最有效的方法是比较两个阵列并找出使阵列所需的最小交换次数' a1'与' a2'?
的顺序相同例如:
{{1}}
因此,所需的最小交换次数为:3
分步骤:
交换1:a1 [0]< - > A1 [1]
交换2:a1 [1]< - > A1 [2]
交换3:a1 [3]< - > A1 [4]
所以,最后a1将包含{2,3,1,5,4}
答案 0 :(得分:0)
int numofchanges = 0;
for(int i = 0; i < sizeOfArrays; i++)
{
int arr3[] = arr1;
for(int n = 0; n < sizeOfArrays; n++)
{
arr3[i] = arr1[n];
if(arr3[i] == arr2[i])
{
int tmp = arr1[i];
arr1[i] = arr1[n];
arr1[n] = tmp;
numofchanges++;
}
}
}
WARRNING 这不会运行就像伪代码
变量numofchanges将保存更改次数,arr1现在将为arr2
我希望这很有帮助