zoukankan      html  css  js  c++  java
  • 【剑指Offer-循环和递归】面试题10:斐波那契数列

    题目描述

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

    思路1

    使用递归。

    class Solution {
    public:
        int Fibonacci(int n) {
            if(n==0)
                return 0;
            if(n==1)
                return 1;
            return Fibonacci(n-1) + Fibonacci(n-2);
        }
    };
    

    但由于这个问题的递归的时间复杂度为指数(O(2^n)),牛客网上没有通过。

    思路2

    使用循环。
    代码如下:

    class Solution {
    public:
        int Fibonacci(int n) {
            int a[] = {0, 1};
            int ans = 0;
            if(n<2)
                return a[n];
            for(int i=2; i<=n; i++){
                ans = a[0] + a[1];
                a[0] = a[1];
                a[1] = ans;
            }
            return ans;
        }
    };
    
  • 相关阅读:
    171-滑动窗口问题
    170-133. 克隆图
    169-150. 逆波兰表达式求值
    windows相对路径设置与取消小工具[提效]
    Sword 38
    Sword 33
    Sword 28
    Sword 26
    Sword 12
    Sword 07
  • 原文地址:https://www.cnblogs.com/flix/p/12329237.html
Copyright © 2011-2022 走看看