阅读 25

【剑指Offer 7.斐波那契数列】|刷题打卡

目录

  • 题目描述
  • 思路分析
  • AC 代码
  • 总结

掘金团队号上线,助你 Offer 临门! 点击 查看详情

一、题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。其中,n≤39。

示例1

输入

4

返回值

3

二、思路分析

难度:中等

看到斐波那契数列,是不是立马就想起来了,大学期间学习递归算法的经历?是的,我们老师在介绍递归算法时,就是用的斐波那契数列。因此,我们肯定能够想到使用递归法解决这个问题。那么还有没有其他方法呢?答案是有的,我们还可以利用动态规划算法,每次记录第n-1项和第n-2项的结果,循环记录,这样也可以实现斐波那契数列的计算。

三、AC 代码

语言:Go

方法一、

代码:

package main

/**
 * 
 * @param n int整型 
 * @return int整型
*/
func Fibonacci( n int ) int {
    if n == 0 || n == 1 {
        return n
    }
    return Fibonacci(n-1) + Fibonacci(n-2)
}

复制代码

方法二、

代码:

package main

/**
 * 
 * @param n int整型 
 * @return int整型
*/
func Fibonacci( n int ) int {
    a, b := 0, 1
    for i := 0; i < n; i++ {
        a, b = b, a+b
    }
    return a
}
复制代码

通过截图:

方法一、

image.png

方法二、

image.png

四、总结

其实,一般可以使用递归算法的题目,都还可以考虑动态规划解题。我们遇到类似的题目时,不妨多想想。

文章分类
后端
文章标签