變態跳臺階 劍指offer python版
阿新 • • 發佈:2020-12-28
技術標籤:劍指offer程式設計題(python)
目錄
題目
題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
示例1
輸入
3
返回值
4
一、思路
f(1) = 1
f(2) = f(2-1) + f(2-2) //f(2-2) 表示2階一次跳2階的次數。
f(3) = f(3-1) + f(3-2) + f(3-3)
f(n) = f(n-1) + f(n-2) + f(n-3) + … + f(n-(n-1)) + f(n-n)
這裡主要注意f(0)=1, 直接從起點跳到終點的情況
二、程式碼
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
f_list=list()
if number==0: return 1
if number==1: return 1
f_list.append(1)
f_list.append(1)
a,b=1,1
for i in range(2,number+1):
b= sum(f_list[:i])
f_list.append(b)
return f_list[number]
三、總結
實際的問題是斐波那契數列的變形,只是初始條件有些不同,注意就可以了。