509. Fibonacci 斐波那契数
- Time Complexity: O(n)
- Space Complexity: O(n) 可以优化成O(1) 用dp[2]代替dp[n+1] 因为其实只需要保存i前面的两个数
70. Climb Stairs 爬楼梯
- dp[i]含义: 爬到第i层楼梯,有dp[i]种方法
- 公式:dp[i] = dp[i-1] + dp[i-2];
- 因为上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个台阶不就是dp[i]
- 并且上i-2层楼梯,有dp[i - 2]种方法,那么再一步跳两个台阶不就是dp[i]
- Time Complexity: O(n)
- Space Complexity: O(n) 可以优化成O(1) 用dp[2]代替dp[n+1] 因为其实只需要保存i前面的两个数
746. Min Cost Climbing Stairs 使用最小花费爬楼梯
- dp[i]的定义:到达第i台阶所花费的最少体力为dp[i]
- 公式:
- dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]
- dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] + cost[i - 2]
- 初始化:i=0, i=1不需要花费
- Time Complexity: O(n)
- Space Complexity: O(n) 可以优化成O(1) 用dp[2]代替dp[cost.length+1] 因为其实只需要保存i前面的两个数