所以我有以下问题:有n个旋转的拨盘,每个都设置为0-9之间的某个数字,它们需要与另一系列n个数字(也在0-9之间)相匹配。
旋转的一个步骤是将任意数量的连续拨盘向上或向下旋转一步。刻度盘环绕在9左右。也就是说,从9开始向上旋转一步会得到0,反之亦然。
我需要找到将初始配置与给定配置相匹配的最小步骤数。
例如:Initial -> 154 Given -> 562
154 -> 264->1 step264->564 ->3 steps564->562 ->2 steps所以最小的步数是6。
我不需要代码,只需要一些方法的见解。
发布于 2018-07-27 22:34:48
我不确定我是否正确理解了这个问题。似乎如果你将两个数字旋转在一起一步,该移动只被算作一次移动,而不是两次移动,对吗?
在这种情况下,为什么不计算每个数字与其他序列中匹配的数字之间的最小距离。在那之后,分组在一起,减去移动和加移动,并在可能的情况下一起移动数字。
例如:
145 -> 632
由于只有负移动,我会将这5个也算作负移动,并执行以下操作:
https://stackoverflow.com/questions/51552605
复制相似问题