概述
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:找规律
输入 | 可能的跳法 |
---|---|
f(1) | 1 |
f(2)=2 | (1,1),(2) |
f(3)=4 | (1,1,1),(1,2),(2,1),(3) |
f(4)=8 | (1,1,1,1),(1,1,2),(1,2,1),(1,3),(2,1,1),(2,2),(3,1),(4) |
f(5) | (1,1,1,1,1),(),() |
a[n]=a[n-1]+a[n-2]+…+a[1];…①
a[n-1]= a[n-2]+…+a[1];…②
两式相减可知:a[n]=2*a[n-1];
直接看图就知道:
非递归实现
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
res = 2
for i in range(2, number):
res = res * 2
return res
最后
以上就是风趣康乃馨为你收集整理的【剑指Offer】 9.变态跳台阶 python实现的全部内容,希望文章能够帮你解决【剑指Offer】 9.变态跳台阶 python实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复