[剑指offer] 斐波那契数列

简介: 本文首发于我的个人博客:尾尾部落题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n

本文首发于我的个人博客:尾尾部落

题目描述

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

解题思路

公式:
f(n) = n, n <= 1
f(n) = f(n-1) + f(n-2), n > 1
可以直接使用递归的方法:

if(n<=1) return n;
else return Fibonacci(n-1)+Fibonacci(n-2);

递归的方法可能会遇到Stack Overflow,
所以我们可以考虑用动态规划的方法来实现。
采用自底向上方法来保存了先前计算的值,为后面的调用服务。

参考代码

public class Solution {
    public int Fibonacci(int n) {
        if(n == 0 || n == 1)
            return n;
        int fn1 = 0;
        int fn2 = 1;
        for(int i=2; i<=n; i++){
            fn2 += fn1;
            fn1 = fn2 - fn1;
        }
        return fn2;
    }
}
目录
相关文章
【剑指offer】-斐波那契数列-07/67
【剑指offer】-斐波那契数列-07/67
|
10月前
LeedCode_04-斐波那契数列(剑指offer-10)
LeedCode_04-斐波那契数列(剑指offer-10)
|
5月前
剑指Offer LeetCode 面试题10- I. 斐波那契数列
剑指Offer LeetCode 面试题10- I. 斐波那契数列
24 0
|
5月前
牛客网-斐波那契数列
牛客网-斐波那契数列
15 0
|
8月前
剑指offer-9.斐波那契数列
剑指offer-9.斐波那契数列
27 1
|
11月前
剑指offer 09. 斐波那契数列
剑指offer 09. 斐波那契数列
29 0
|
11月前
|
存储
剑指Offer - 面试题10:斐波那契数列
剑指Offer - 面试题10:斐波那契数列
57 0
|
算法
斐波那契数列两种算法和青蛙跳台阶的两种实际问题
当我们看到这样的题时,心想就是一个简单的递归调用么。 但是,我们要看到这种算法的不足之处——效率低下。 首先简单的介绍一下 :
69 0
斐波那契数列(剑指offer 10-I)
斐波那契数列(剑指offer 10-I)
AcWing 717. 简单斐波那契
AcWing 717. 简单斐波那契
85 0
AcWing 717. 简单斐波那契