Skip to content

Latest commit

 

History

History
36 lines (32 loc) · 617 Bytes

2022-12-12.md

File metadata and controls

36 lines (32 loc) · 617 Bytes

题目

  1. Climbing Stairs

You are climbing a staircase. It takes n steps to reach the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

思路

dp[i] = dp[i-1] + dp[i-2]
dp[1] = 1
dp[2] = 2

代码

var climbStairs = function(n) {
  const dp = [1, 1]
  for (let i = 2; i <= n; i++) {
    dp[i] = dp[i-1] + dp[i-2]
  }
  return dp[n]
}

优化空间

var climbStairs = function(n) {
  const dp = [1, 1]
  for (let i = 2; i <= n; i++) {
    const x = dp[1]
    dp[1] += dp[0]
    dp[0] = x
  }
  return dp[1]
}