gpt4 book ai didi

javascript - diff 2 数组,其中的项目只是重新排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:00:11 25 4
gpt4 key购买 nike

给定两个数组 arr1arr2,它们都具有相同的项目,但排序不同,如何制作一个列表,其中项目移动操作所需的次数最少使 arr1 匹配 arr2?

执行此操作的函数/算法应接受我的两个数组作为唯一参数,并返回如下数组:

[
[1,5],
[3,0],
[7,2]
]

上面的数组将被解释为“将索引 1 的项目移动到索引 5,然后将索引 3 的项目移动到索引 0,最后将索引 7 的项目移动到索引 2。”

通过项目移动操作,我的意思是:

function arrayMove(array, from, to) {
return array.splice(to, 0, array.splice(from, 1)[0]);
}

当一个项目从索引 a 移动到索引 b 时,索引 a 之后的项目“向下滑动”,因此具有索引的项目a + 1 现在有索引 a,当项目被添加回索引 b 时,具有 index > 的项目= b 将向上滑动,因此具有索引 b 的项目现在具有索引 b + 1

请随时以 JS 或伪代码形式提供您的算法,感谢您的帮助。

最佳答案

这让我觉得与 edit distance problem 有关.也许你可以利用 Wagner-Fischer algorithm .

关于javascript - diff 2 数组,其中的项目只是重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com