剑指 Offer 10- I. 斐波那契数列


剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:
F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

class Solution {
    public int fib(int n) {
         if(n==0||n==1){
            return n;
        }
        int a = 0, b = 1, sum=a+b;
        for(int i = 2; i < n; i++)&#123;
            a = b;
            b = sum;
            sum = (a + b) % 1000000007;
        &#125;
        return sum;
    &#125;
&#125;
     public int fib(int n) &#123;
        if(n == 0) return 0;
        int[] dp = new int[n + 1];
        dp[0] = 0;
        dp[1] = 1;
        for(int i = 2; i <= n; i++)&#123;
            dp[i] = dp[i-1] + dp[i-2];
            dp[i] %= 1000000007;
        &#125;
        return dp[n];
    &#125;

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
剑指 Offer 40. 最小的k个数 剑指 Offer 40. 最小的k个数
剑指 Offer 40. 最小的 k 个数常规法public int[] getLeastNumbers(int[] arr, int k) &#123; int[] vec = new int[k];
2021-02-26 future
下一篇 
110. 平衡二叉树 110. 平衡二叉树
110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为: 一个二叉树*每个节点  *的左右两个子树的高度差的绝对值不超过 1 。 /** * Definition for a binary
2021-02-26 future
  目录