假設你正在爬樓梯磅摹。需要 n 階你才能到達樓頂凭戴。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢反璃?
注意:給定 n 是一個正整數(shù)
思路:
可以用動態(tài)規(guī)劃來求解該題
跳到第n個臺階麸塞,只有兩種可能
從第n-1個臺階跳1個臺階
從第n-2個臺階跳2個臺階
只需求出跳到第n-1個臺階和第n-2個臺階的可能跳法即可
F(n):n個臺階的跳法
遞推公式:F(n)=F(n-1)+F(n-2)
不難發(fā)現(xiàn)這是一個斐波那契數(shù)列
代碼:
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
if number <= 2:
return number
second=2
first=1
result=1
for i in range(3,number+1):
result=first+second
first=second
second=result
return result