Medium Algorithms Dynamic Programming
How do you optimize Fibonacci computation using dynamic programming?
Answer
Naive recursion has O(2^n) complexity due to repeated subproblems. Memoization (top-down DP) stores computed values, reducing to O(n) time and O(n) space. Tabulation (bottom-up DP) iteratively fills a table from base cases: O(n) time, O(n) space. Space-optimized version only keeps last two values: O(n) time, O(1) space. Matrix exponentiation achieves O(log n) time using [[1,1],[1,0]]^n property.
IIT Certified
Master These Concepts with IIT Certification
175+ hours of industry projects. Get placed at Bosch, Tata Motors, L&T and 500+ companies.
Relevant for Roles
Software Engineer Backend Developer Algorithm Developer