首页 > 其他 > 详细

p55 第 n 个斐波那契数 (leetcode 509)

时间:2020-03-18 16:31:46      阅读:48      评论:0      收藏:0      [点我收藏+]

一:解题思路

方法一:递归法,Time:O(2^n),Space:O(n)

方法二:迭代法一:Time:O(n),Space:O(n)

方法三:迭代法二:Time:O(n),Space:O(1)

二:完整代码示例 (C++版和Java版)

方法一C++:

class Solution {
public:
    int fib(int N) 
    {
        if (N == 0) return 0;
        if (N == 1) return 1;

        return fib(N - 1) + fib(N-2);
    }
};

方法一Java:

class Solution {
    public int fib(int N)
    {
          if(N==0) return 0;
          if(N==1) return 1;
          
          return fib(N-1)+fib(N-2);
    }
}

方法二C++:

class Solution {
public:
    int fib(int N) 
    {
        if (N == 0) return 0;
        if (N == 1) return 1;
        vector<int> d(N,0);

        d[0] = 0;
        d[1] = 1;

        for (int i = 2; i < N; i++)
        {
            d[i] = d[i - 1] + d[i - 2];
        }

        return d[N-1];
    }
};

方法二Java:

class Solution {
    public int fib(int N)
    {
          if(N==0) return 0;
          if(N==1) return 1;
          
          int[] d=new int[N+1];
          d[0]=0;
          d[1]=1;
          
          for(int i=2;i<N+1;i++)
          {
              d[i]=d[i-1]+d[i-2];
          }
          
          return d[N];
    }
}

方法三C++:

class Solution {
public:
    int fib(int N) 
    {
        if (N == 0) return 0;
        if (N == 1) return 1;

        int first = 0;
        int second = 1;

        for (int i = 2; i < N + 1; i++)
        {
            int cur = first + second;
            first=second;
            second = cur;
        }

        return second;
    }
};

方法三Java:

class Solution {
    public int fib(int N)
    {
          if(N==0) return 0;
          if(N==1) return 1;

          int first=0;
          int second=1;

          for(int i=2;i<N+1;i++)
          {
              int cur=first+second;
              first=second;
              second=cur;
          }
          
          return second;
    }
}

 

p55 第 n 个斐波那契数 (leetcode 509)

原文:https://www.cnblogs.com/repinkply/p/12517111.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!