我正在学习算法并来到这座河内塔。我知道如何实际做到这一点。但我无法编码。我还没有阅读给定的代码。我自己先试试。我的方法应该是什么 - 继续尝试或阅读给定的代码或其他内容?
所有算法都应该遵循这种方法吗?
我正在学习算法并来到这座河内塔。我知道如何实际做到这一点。但我无法编码。我还没有阅读给定的代码。我自己先试试。我的方法应该是什么 - 继续尝试或阅读给定的代码或其他内容?
所有算法都应该遵循这种方法吗?
您可能会发现这很有用:
http://www.quora.com/Algorithms/How-does-one-become-good-at-solving-algorithm-programming-problems
从上面的帖子中得到一个很大的收获:
流行与相反的看法,我不认为算法问题的编码解决方案是学习算法的普遍有效方法。成功完成它的人通常擅长/快速发现模式和解决算法导向的问题。
您实际上不需要编写代码来解决示例问题 - 只需确保您了解解决它的基本思想。
看这个 -
http://www.youtube.com/watch?v=uFJhEPrbycQ&list=SPFE6E58F856038C69
如果你有 3 个环,你会如何移动整个塔?将前 2 个环移动到临时环。将底部环移动到目的地。然后将 2 个环从 temp 复制到 final。
理解这一点的关键是递归并考虑移动 N-1 个环