ลำดับฟีโบนัชชี (Fibonacci Sequence) เริ่มจาก 0 และ 1 (หรือ 1 และ 1) ตัวเลขถัดไปเท่ากับผลรวมของสองตัวก่อนหน้า วิธี Bottom-Up เน้นแก้ปัญหาย่อยพื้นฐานก่อน แล้วรวมเป็นคำตอบสมบูรณ์
Time Complexity: O(N)
Space Complexity: 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