如何使用 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP