题目解析
这题是一道经典的分治算法题、以及动态规划基础题。
这题既可以使用分治递归来自顶向下地求解,也可以使用动态规划递推地自底向上求解。
但是动态规划的效率更高。
这题和fibnaci数列很像,递归公式如下:
- jump(1) = 1
- jump(2) = 1
- jump(3) = 2
- jump(n) = jump(n-1) + jump(n-3), n>3
状态转移方程如下:
- dp[0] = 0
- dp[1] = 1
- dp[2] = 1
- dp[3] = 2
- dp[i] = dp[i-1] + dp[i-3], i>3
上面递归公式和状态转移方程的规律发现如下
台阶数 | 跳跃方式 | 几种跳跃方式 |
1 | 1 |