Programação Dinâmica
O tipo mais difícil: memoização nasce da recursão dominada. Fecha o curso.
Aulas
- ✓01
Reconhecendo problemas de DP
Subproblemas que se repetem, memoização vs tabulação e a complexidade estados × custo.
- ✓02
Padrão 1: DP 1D (a recorrência)
Construir uma resposta a partir das anteriores — climbing stairs e a base de tudo.
- ✓03
Padrão 2: Incluir ou excluir
Em cada item, decidir pegar ou pular — house robber e a fronteira entre greedy e DP.
- ✓04
Padrão 3: Knapsack (coin change)
Compor um alvo a partir de itens reutilizáveis — o coin change e o knapsack ilimitado.
- ✓05
Padrão 4: DP em grid
Preencher uma tabela 2D onde cada célula depende das vizinhas — unique paths.
- ✓06
Padrão 5: DP em sequências e strings
Comparar duas sequências numa tabela 2D — LCS, e a família de DP em strings.
- ✓07
Síntese: qual padrão usar?
A árvore de decisão da seção (e do curso) e o quiz geral antes da prova final.
1 fácil + 1 médio + 1 difícil — problemas inéditos
Com casos de teste ocultos, como no LeetCode de verdade. É aqui que você confirma que sai da seção resolvendo qualquer problema do tema.