题目描述
偷懒了,明天去澳门耍,所以先把简单题做了。
一开始肯定是想着用递归
class Solution:
def climbStairs(self, n: int) -> int:
if n==1:
return 1
elif n==2:
return 2
else:
count = self.climbStairs(n-1) + self.climbStairs(n-2)
return count
但是超时了,emmmmm,果然简单题都是骗人的叭
原来是要用动态规划做
class Solution:
# dp[i] = dp[i-1]+dp[i-2]
def climbStairs(self, n: int) -> int:
dp = []
dp.append(1) # 初始状态,只有1阶的时候有一种走法
dp.append(2) # 有2阶的时候有两种走法
if n==1:
return 1
if n==2:
return 2
for i in range(2,n):
dp.append(dp[i-1]+dp[i-2])
return dp[-1]