剑指offer(Python版本)-- 递归和循环

这篇博客通过Python讲解了递归和循环在解决斐波那契数列、跳台阶问题(包括普通和变态版本)以及矩形覆盖问题的应用。介绍了递归解法和循环解法,并提供了详细的代码实现。
摘要由CSDN通过智能技术生成

7. 斐波那契数列

F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
题目描述:
现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
解题思路:
1)第一种解法:递归
在这里插入图片描述
2)第二种解法:循环
在这里插入图片描述
实现代码如下:

class Solution:
    def Fibonacci(self, n):
        # write code here
        # n=0,f(0)=0
        # n=1,f(1)=1
        # n=2,f(2)=1
        # f(n)=f(n-1)+f(n-2)
        '''
        # 递归实现(会超时,时间复杂度为O(2^n))
        if n<=1:
            return n
        return self.Fibonacci(n-1)+self.Fibonacci(n-2)
        '''
        # for循环解法(时间复杂度为o(n))
        if n<=1:
            return n
        # 当n>1 f(n)=f(n-1)+f(n-2)
        a=1
        b=0
        res=0
        for i in range(0,n-1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值