动态规划(第1期)
接下来我将持续更新这篇关于动态规划的学习文章并发表博客,如有错误欢迎大家的纠正。
入门:递推与动态规划
通过数学归纳法产生各种公式
数学归纳法的三个步骤:
确定边界条件是成立的。
如果公式的第n-1项是成立的,那么该公式的第n项也一定是成立的。
如果前面都是对的,那么当递推到最后一步时,最终的结果也一定是成立的。
而通过数学归纳法可以推出各种公式,例如下面的斐波那契数列。
公式有意义吗?
我认为公式本身是没有意义的,只有当公式对应到某个具体的问题场景并且为解决这个问题而服务时,这个公式才被这个问题赋予了某种特定的意义,我认为可以将公式理解为是问题的答案的抽象化结果。
例如:斐波那契数列的公式为 F ( n ) = F ( n − 1 ) + F ( n − 2 ) F(n) = F(n-1)+F(n-2) F(n)=F(n−1)+F(n−2),这个公式乍一看是没有意义的,但是如果将他放置到下面的这个问题中时,他瞬间就有意义了。
问题:爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
**注意:**给定 n 是一个正整数。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶