所以我有以下问题:
有n个旋转拨盘,每个拨盘设置为0-9之间的某个数字,并且它们需要与另一组n个数字(也在0-9之间)匹配。
旋转的步骤是向上或向下旋转任何数量的连续刻度盘。刻度盘环绕9。也就是说,将刻度盘从9向上旋转1会得到0,反之亦然。
我需要找到使初始配置与给定配置相匹配的最小步骤数。
例如:Initial -> 154 Given -> 562
1.首先移动,第2个按1 154 -> 264
-> 1步拨号
2.向上移动第一个拨盘3 264->564
-> 3步
3.将第3个拨盘2下移564->562
-> 2步
因此,最小步骤是6
。
我不需要代码,只需一些方法的见解即可。
答案 0 :(得分:0)
我不确定我是否正确理解了问题。看来,如果您将两个数字一起旋转1步,那么该移动仅算作一个移动,而不是两个,对吗?
在这种情况下,为什么不计算每个数字与其另一个系列中的匹配之间的最小距离。在该组之后,减号和加号一起移动,并尽可能将数字一起移动。
例如:
145-> 632
由于只有减号,所以我将5也算作减号,然后执行以下操作: