【发布时间】:2019-01-04 06:18:13
【问题描述】:
所以我有以下问题:
有n个旋转表盘,每个设置为0-9之间的某个数字,它们需要与另一个系列的n个数字(也在0-9之间)匹配。
一步旋转是向上或向下旋转任意数量的连续刻度盘。刻度盘环绕 9。即从 9 向上旋转一步会得到 0,反之亦然。
我需要找到将初始配置与给定配置相匹配的最小步骤数。
例如:Initial -> 154 Given -> 562
1.先移动前2拨号1154 -> 264->1步
2. 将第一个拨号 3 向上移动 264->564 ->3 步
3. 将第 3 个拨盘 2 向下移动 564->562 ->2 步
所以最小步数是6。
我不需要代码,只需要对该方法的一些见解。
【问题讨论】:
-
你的例子不清楚。请以更好的方式解释它。
-
这似乎是动态编程的明显候选者。我看不到贪心算法或其他一些简单的启发式算法找到最佳解决方案。
-
@m69 关于该方法应该如何的任何想法?
-
我一直在考虑它,但似乎没有一个明显的事情起作用。这是来自编码比赛吗?这似乎是一个巧妙构造的问题。
-
是的,它来自黑客马拉松......
标签: algorithm dynamic-programming min