自顶向下和自底向上差在哪
DP 的两种写法,区别是【0】。
用 DP 要付什么代价
动态规划省下了重复计算,代价是【0】。
爬十级楼梯有几种走法
每次能上 1 级或 2 级,爬到第 10 级一共有几种走法? 运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #i
朴素递归的 fib 慢在哪
第 1 步:f(4) 的整棵递归树 第 2 步:按调用顺序数到第 3 次 第 3 步:按调用顺序数到第 6 次 第 4 步:按调用顺序数到第 9 次 第 5 步:一共 9 次,好几次是重复 f4 f3 f2 f2 f1 f1 f0 f1 f
递归树上的重复怎么来的
递归树上出现重复的子问题,是因为【0】。
朴素 fib 的调用次数怎么长(C++)
n 每加一,朴素 fib 的调用次数大致【0】。
怎么确认递归在重复计算
要确认某个递归确实在重复计算,办法是【0】。
fib(3) 被算了多少遍
用朴素递归算 fib(12),数一数 fib(3) 这一个子问题被算了几遍。 运行下面这段程序: #include <algorithm> #include <iostream> #include <strin
写一个会数次数的 fib
补全 fib_cnt:照定义递归,同时用引用参数 t 数一共调用了自己多少次。把 fib(12) 的值和调用次数拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)
数出两个子问题各几遍
补全 fib_hit:算 fib(12) 的过程中,数出参数正好等于 k 的调用有多少次。把 k=3 和 k=2 的次数拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)