1. 程式人生 > 其它 >變態跳臺階 劍指offer python版

變態跳臺階 劍指offer python版

技術標籤:劍指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]

三、總結

實際的問題是斐波那契數列的變形,只是初始條件有些不同,注意就可以了。