leetcode_climbing stairs

Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? (Note: Given n will be a positive integer.)
(爬楼梯问题)

Example:

1. 动态规划

1
2
3
4
5
6
7
8
class :
def climbStairs(self, n: 'int') -> 'int':
dp = [1 for _ in range(n+1)]

for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]

return dp[n]