【发布时间】:2020-06-06 17:21:28
【问题描述】:
我得到了一个有效的 Hanoi 磁盘塔的排列。排列以数组形式给出。
例如[2,2,0]:数组的索引是磁盘的标识符,从小到大排序,数组的值是对应磁盘的位置(位置总是0, 1 或 2)。在[2,2,0]的情况下,最小的两个圆盘在第三极,而最大的圆盘在第一极:
| | |
| | [0]
[22222] | [111]
----+---- ----+---- ----+----
另一个例子:[0,2,1]
| | |
| | |
[0] [22222] [111]
----+---- ----+---- ----+----
是否可以递归地解决将所有磁盘移动到目标极点(第二极点)所需的剩余步骤?
public int solveForSteps(int[] disks){
// Is there a possible way to solve with given arrangements?
}
【问题讨论】:
-
看看关于在 SO stackoverflow.com/questions/ask 上发布问题的问题
-
令人困惑。尝试更清楚地说明问题。
-
杆和钉的意思是一样的。在河内的塔中,只有三个杆/钉。光盘是移动的东西。考虑到这一点,请您澄清您的问题并解释您的数组表示法吗?
标签: java algorithm recursion towers-of-hanoi