Estou procurando um exemplo de fácil compreensão para alguém que deseja aprender Programação Dinâmica. Existem boas respostas aqui sobre o que é programação dinâmica . A sequência de fibonacci é um ótimo exemplo, mas é muito pequena para arranhar a superfície. Parece um ótimo assunto para aprender, embora eu não tenha feito a aula de algoritmos ainda, espero que esteja na minha lista para a primavera.
96
Aqui está um bom tutorial que compreende 29 problemas de DP resolvidos com grande explicação.
fonte
A ideia por trás da programação dinâmica é que você armazene em cache (memoizing) soluções para subproblemas, embora eu ache que há mais do que isso.
Existem muitos problemas do Google Code Jam, de forma que as soluções exigem uma programação dinâmica para serem eficientes. Exemplos:
Bem-vindo ao Code Jam (moderado)
Trapaceando uma árvore booleana (moderado)
PermRLE (difícil)
Observe que cada um dos concursos de prática do Code Jam tem uma seção de "Análise do Concurso" para se você não conseguir resolver o problema.
fonte
fonte
Calcular distâncias de Levenshtein foi um dos primeiros problemas que resolvi com a programação dinâmica; Acho que é um próximo passo decente da sequência de Fibonacci em termos de complexidade.
http://en.wikipedia.org/wiki/Levenshtein_distance
fonte