题目
思路
一开始看到题目是挺没思路的,在纸上演算了一下,发现实际就是斐波那契数列,那么就简单了,直接上递归。
代码
class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
if n == 1:
return 1
elif n == 2:
return 2
else:
return self.climbStairs(n-1)+self.climbStairs(n-2)
然后提交时提示超出时间限制,看来递归不可取。
然后又尝试了数组的方法,时间复杂度低了些,能通过但是还是不够简单。
class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
m = [1,2]
sum = 0
if n == 1:
return m[0]
elif n == 2:
return m[1]
else:
i = 2
while i < n:
sum = m[i-1]+m[i-2]
m.append(sum)
i += 1
return sum