Most easily seen in recursive problems like finding solutions to the knapsack problem, it is an alternative to greedy algorithms or branch and bound techniques.
One algorithm that uses this technique is the Smith-Waterman algorithm, which searches protein databases to find those with the best alignment.  A common application of it is finding solutions to the chain matrix multiplication problem.  It is used in the Viterbi algorithm to find the most likely sequence of hidden events in the context of Markov Chain models.  Most easily seen in recursive problems like finding solutions to the knapsack problem, it is an alternative to greedy algorithms or branch and bound techniques. Developed by Richard Bellman, it relies on two features of a given problem, those being memorization and overlapping subproblems. FTP, identify this algorithm design technique that uses the idea that a solution can be constructed using optimal solutions to its subproblems.
One algorithm that uses this technique is the Smith-Waterman algorithm, which searches protein databases to find those with the best alignment.  
dynamic programming