ลำดับฟีโบนักชีคือชุดของตัวเลขที่เริ่มต้นด้วยหนึ่งหรือศูนย์ ตามด้วยหนึ่ง และดำเนินการตามกฎที่แต่ละหมายเลข (เรียกว่าหมายเลขฟีโบนักชี) เท่ากัน เป็นผลรวมของตัวเลขสองตัวก่อนหน้า วิธีจากล่างขึ้นบนจะเน้นที่การแก้ปัญหาเล็กๆ น้อยๆ ในระดับพื้นฐานก่อน จากนั้นจึงรวมเข้าเป็นโซลูชันที่สมบูรณ์และครบถ้วน
ความซับซ้อนของเวลา − O(N)
ความซับซ้อนของอวกาศ − O(N)
ตัวอย่าง
public class DynamicProgramming{
public int fibonacciBottomupApproach(int n){
int[] dpArr = new int[150];
dpArr[1] = 1;
for (int i = 2; i <= n; i++){
dpArr[i] = dpArr[i - 1] + dpArr[i - 2];
}
return dpArr[n];
}
}
static void Main(string[] args){
DynamicProgramming dp = new DynamicProgramming();
Console.WriteLine(dp.fibonacciBottomupApproach(5));
} ผลลัพธ์
5