如何使用 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 次瀏覽

開啟您的 職業

完成課程獲取認證

開始
廣告
© . All rights reserved.