另外两个经典题的答案
打家劫舍 [2, 7, 9, 3, 1],最大子段和 [-2, 1, -3, 4, -1, 2, 1, -5, 4]。 运行下面这段程序: #include <algorithm> #include <iostream&g
爬楼梯只用两个变量
补全 climb_roll:不开表,只用两个变量滚着往前推。输出爬 10 级的走法数。 (本题用 g++ -std=c++17 -O0 编译。)
打家劫舍
补全 rob 并输出最多能拿多少。 (本题用 g++ -std=c++17 -O0 编译。)
最大子段和
补全 max_sub 并输出最大的连续和(best 和 cur 都从第一个元素起——上一节刚讲过为什么)。 (本题用 g++ -std=c++17 -O0 编译。)
三个经典题一起交
把三个都补全(爬楼梯用滚动变量版),三个答案用 / 拼起来输出:爬 10 级 / 打家劫舍 / 最大子段和。 (本题用 g++ -std=c++17 -O0 编译。)
拿到新问题先定什么
第 1 步:先填好最小的两格 第 2 步:第 2 格 = 前两格相加 第 3 步:第 3 格 = 前两格相加 第 4 步:第 4 格 = 前两格相加 第 5 步:第 5 格 = 前两格相加 第 6 步:第 6 格 = 前两格相加 第 7 步
交付一个 DP 要验什么(C++)
把一个 DP 解交出去,必须验的是【0】。
四项一起对得上吗
运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <vector> using nam
第一步数出重复再消掉
最终作品第一步:朴素 fib 和记忆化 fib(都带计数)各算 fib(12)。输出 朴素次数 / 记忆化次数 / 结果是否一致。 (本题用 g++ -std=c++17 -O0 编译。)
第二步改成自底向上
补全填表版 fib 和填表版爬楼梯,把 fib(12) 和爬 10 级的走法数拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)