advanced
Big O Refactoring uitdaging
Analyseer en optimaliseer een inefficiënt algoritme door time- en space-complexiteit te reduceren met minimale trade-offs.
📝 Contenu du Prompt
Je ontvangt een pseudo-code voor een recursieve functie die Fibonacci-getallen berekent maar een exponentiële tijdcomplexiteit heeft. Schrijf een geoptimaliseerde versie in Python die lineaire tijdcomplexiteit (O(n)) bereikt en constante ruimtecomplexiteit (O(1)) gebruikt. Leg daarnaast stap voor stap uit waarom de oorspronkelijke benaming inefficiënt is en analyseer de memory-overhead van je oplossing ten opzichte van een dynamische programmeerbenadering met memoisatie. Bespreek ook de mogelijke edge-cases bij zeer grote gehele getallen (big integers).