点击上方"蓝字",关注了解更多
跳台阶
1. 题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。
一种变相的斐波那契数列
大家都知道斐波那契数列,前两项相加为第三项的值
如:0, 1, 1, 2, 3, 5, 8, 13......
2. 示例
求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
3. 解题思路
如果非递归方法实现,可以看上一篇的斐波那契数列那篇,这里直接使用递归的形式
但是,Python不能使用递归的方法,这样子会导致复杂度很大,不能通过,所以要使用非递归的方法
4. Java实现
public class Solution {
public int JumpFloor(int target) {
// 斐波那契数列的一种变体
if (target <= 1) return 1;
if (target == 2) return 2;
return (JumpFloor(target -1) + JumpFloor(target -2));
}
}
5. Python实现
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
if (number <= 1):
return 1
if (number == 2):
return 2
a, b = 1, 2
for i in range(number-2):
a, b = b, a+b
return b
精彩推荐如果您觉得本文有用,请点个“在看”
Java开发微服务畅购商城实战-全357集【附代码课件】
Java微服务实战谷粒商城-296集【附代码课件】
Spring Boot开发小而美的个人博客【附课件和源码】
基于Python flask框架的租房项目实战【附资料和源码】
PyQt5开发与实战视频【附课件和源码】
最全最详细数据结构与算法视频-【附课件和源码】
2020年微信小程序全栈项目之喵喵交友【附课件和源码】
你点的每一个在看,我都认真当成了喜欢