如何使用 C# 利用自顶向下方法实现斐波那契数列?


斐波那契数列是一组数字,从 1 或 0 开始,然后是 1,并且按照每个数字(称为斐波那契数)等于前两个数字之和的规则进行。自顶向下方法着重于将大问题分解成更小且易于理解的块。空间复杂度为 O(N),因为我们正在创建一个额外的数组内存,它等于数字的大小。

时间复杂度 − O(N)

空间复杂度 − O(N)

示例

public class DynamicProgramming{
   public int fibonacciTopdownApproach(int n,int[] dpArr ){
      if(n==0 || n == 1){
         return n;
      }
      if(dpArr[n] != 0){
         return dpArr[n];
      }
      int res = fibonacciTopdownApproach(n - 1,dpArr) + fibonacciTopdownApproach(n - 2,dpArr);
      return dpArr[n] = res ;
   }
}

static void Main(string[] args){
   DynamicProgramming dp = new DynamicProgramming();
   int[] dpArr = new int[150];
   Console.WriteLine(dp.fibonacciTopdownApproach(12, dpArr));
}

输出

144

更新时间:2021-08-17

670 次浏览

开启您的 职业

完成课程获取认证

开始
广告