1.问题描述:
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
2.样例:
比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法
返回 3
3.代码:
递归版本
class Solution:
"""
@param n: An integer
@return: An integer
"""
def climbStairs(self, n):
# write your code here
if n==0 or n==1:
return 1
return self.climbStairs(n-1)+self.climbStairs(n-2)
非递归版本
class Solution:
"""
@param n: An integer
@return: An integer
"""
def climbStairs(self, n):
# write your code here
a=[]
a.append(1)
a.append(1)
for i in range(2,n+1,1):
a.append(a[i-1]+a[i-2])
if n==0:
return 0
else:
return a[n]