LeetCode18—— 爬楼梯
前言:
题目内容:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
- 1 阶 + 1 阶
- 2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
- 1 阶 + 1 阶 + 1 阶
- 1 阶 + 2 阶
- 2 阶 + 1 阶
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
python实现:
class Solution(object):
def climbStairs(self, n):
"""
:type n: int
:rtype: int
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,
特别指出:第0项是0,第1项是第一个1。从第三项开始,
每一项都等于前两项之和。"""
if n<=2:
return n
num1 = 1
num2 = 2
for i in range(3,n+1):
num1,num2 = num2,num2+num1
return num2
if __name__ == '__main__':
n=6
aa = Solution()
print(aa.climbStairs(n))