使两个数组相等的最小移动(不交换)

时间:2019-01-08 00:17:22

标签: python algorithm

听起来这个话题是重复的,但事实并非如此。

我有两个像这样的数组:

for container_id in $(docker ps  --filter="name=$myImage" -q -a);do docker rm $container_id;done

我需要知道使a = ['B', 'C', 'A'] b = ['A', 'B', 'C'] 等于a的最小移动量(而不是掉期)。使用交换方法时,最小交换为2,但是我需要最小移动(在这种情况下为1;将b移动到列表的最前面。

1 个答案:

答案 0 :(得分:1)

似乎N-LCS(a,b)

N是数组的长度

LCS是最长的公共子序列

LCS中的所有元素都具有正确的位置。对于不在LCS中的元素,您只需移动一下即可纠正其位置。