Find the minimum path sum from top to bottom of a triangle. At each step you move to an adjacent number in the row below (index i or i+1).
Bottom-up: start at the last row. Each cell picks the smaller of its two children below. After processing all rows, dp[0] holds the minimum path sum from top to bottom.
Trying every top to bottom path doubles the work with every row. There are 2 to the power of the height of paths.
Work from the bottom row upwards. Start with a copy of the last row, which is the best cost from each bottom position. For each number above, add the smaller of its two children below. Each row shrinks by one, and after the top row, a single value is left. That value is the minimum path sum.
Bottom up removes all the edge cases of top down. Each cell picks the better of its two children.
Run the animation above on your own input, or watch the 1:45 video explanation of Triangle with a dry run and Java code.