Para passar no quiz, você deve responder corretamente pelo menos 9 das 10 perguntas abaixo.
Quais são as duas propriedades essenciais que devem estar presentes em um problema para que a programação dinâmica seja uma abordagem eficaz de solução?
Qual é a principal diferença entre as abordagens de memoization e tabulation em programação dinâmica?
Por que soluções recursivas ingênuas para problemas de programação dinâmica tipicamente têm complexidade de tempo exponencial?
O que significa subestrutura ótima no contexto de dynamic programming?
Ao implementar memoização, o que acontece quando uma função é chamada com argumentos que já foram computados?
Qual é a principal vantagem de usar tabulação em vez de memoização?
Em uma solução de programação dinâmica de baixo para cima, por que os casos base são inicializados primeiro?
Como a programação dinâmica transforma a complexidade de tempo de problemas que apresentam subproblemas sobrepostos?
Qual compromisso a programação dinâmica normalmente faz para alcançar uma melhor complexidade de tempo?
Em qual cenário a programação dinâmica NÃO seria a abordagem algorítmica apropriada?