一週刷完劍指offer-8-跳臺階
阿新 • • 發佈:2020-09-17
跳臺階
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
如果您覺得本文有用,請點個“在看”