写一个会数次数的 fib
补全 fib_cnt:照定义递归,同时用 st["t"] 数一共调用了自己多少次。 把 fib(12) 的值和调用次数拼起来输出。
阅读更多 →
⚠️ fib(3) 被算了多少遍
用朴素递归算 fib(12),数一数其中 fib(3) 这一个子问题被算了几遍。运行下面这段程序: def fib_hit(n, k, st): if n == k: st[&
阅读更多 →
怎么确认一个递归有重叠子问题
要确认某个递归确实在重复计算,办法是【0】。
阅读更多 →
朴素 fib 的调用次数怎么长
n 每加一,朴素 fib 的调用次数大致【0】。
阅读更多 →
递归树上的"重复"是怎么来的
递归树上出现重复的子问题,是因为【0】。
阅读更多 →
朴素递归的 fib 慢在哪
直接照定义写的递归 fib 很慢,因为【0】。
阅读更多 →
爬十级楼梯有几种走法
同一个小问题,又算了一遍 重算 记住 每次能上 1 级或 2 级,爬到第 10 级一共有几种走法?运行下面这段程序: def climb(n): dp = [0] * (n + 1)
阅读更多 →
用 DP 要付什么代价
同一个小问题,又算了一遍 重算 记住 动态规划省下了重复计算,代价是【0】。
阅读更多 →
「自顶向下」和「自底向上」差在哪
同一个小问题,又算了一遍 重算 记住 DP 的两种写法,区别是【0】。
阅读更多 →
用 DP 要同时满足哪两条
同一个小问题,又算了一遍 重算 记住 一个问题能用动态规划,要同时具备【0】。
阅读更多 →