剑指offer 斐波那契系列

Posted yxl-2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 斐波那契系列相关的知识,希望对你有一定的参考价值。

T9-斐波那契用迭代

跳台阶

动规 py2

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloor(self, number):
        # write code here
        if number<0:
            return -1
        if number <=2:
            return number
        a,b=1,2
        res = 0
        for i in range(3,number+1):
            res = a+b
            a,b = b,res
        return res

变态跳台阶

wo的初始迭代方法

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number<0:
            return -1
        res = [0,1]
        for i in range(2,number+1):
            res.append(sum(res)+1)
        return res[number]

数学--移位 py2

调到第n级台阶,前面的(n-1)级有跳与不跳两种选择吗,故答案为2^(n-1),并且用移位运算代替乘法运算来优化。

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number<=0:
            return -1
        res = 1
        return res<<(number-1)

矩形覆盖

技术图片

动规 Py2

# -*- coding:utf-8 -*-
class Solution:
    def rectCover(self, number):
        # write code here
        if number<0:
            return -1
        if number<=2:
            return number
        a,b=1,2
        res=0
        for i in range(3,number+1):
            res = a+b
            a ,b = b,res
        return res

以上是关于剑指offer 斐波那契系列的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列

剑指 Offer 10- I. 斐波那契数列(详解+代码)

剑指offer-斐波那契数列