为了理解贪婪方法和动态规划等高级算法概念,首先需要精通递归。
我对递归比较陌生。每当提出问题时,首先想到的就是使用迭代的解决方案。尽管我知道递归方法的含义以及它是如何工作的,但很难以递归的方式思考。
请通过回答以下问题来提供帮助:
1)任何迭代方法都可以用递归代替吗?反之亦然?
例如,如何递归地打印大小为 n 的数组中的元素?
for i 0 to n
Print a[i]
2)如何递归解决问题?步骤是什么?是否有任何提示可以确定可以递归解决问题?
例如:如果要求打印出字符串的所有子字符串
INPUT: CAT
OUTPUT: CAT,CA,A,AT,T
我可以快速想出一种迭代方式。使用两个循环可以解决问题。
但是如何递归地解决它。如何确定一个问题可以递归地解决。
如果我的第一个问题的答案是肯定的,那么使用两个递归而不是迭代可以解决我的问题吗?
3)谁能建议我一些材料/资源来彻底理解递归的概念?