无递归的记忆化
Coddy 动态规划入门 课程的第 5 课,共 15 课。
在上一课中,我们学习了记忆化,以及它如何帮助降低递归答案的时间复杂度。在本课中,我们将探索如何结合使用递归和记忆化,更高效地解决问题。
递归是一种编程技巧,函数通过调用自身来解决问题。递归答案可能非常优雅、直观,但效率也可能不高,尤其是在使用相同参数多次调用同一个函数时。这时就可以使用记忆化。通过存储之前函数调用的结果,我们可以避免重复计算,并显著提升递归答案的性能。
挑战
简单假设你每次可以爬 1 级或 2 级台阶。
编写一个名为 count_ways 的函数,它接收一个整数 n,并返回爬上有 n 级台阶的楼梯有多少种方法。
这个函数应使用记忆化,以避免重复计算。
这个挑战中不要使用递归!
亲手试试
def count_ways(n):
# TODO:在这里编写你的代码动态规划入门中的所有课
自己练习: Python 在线编译器