题目
题目描述
一只青蛙一次可以跳上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]
三、总结
实际的问题是斐波那契数列的变形,只是初始条件有些不同,注意就可以了。