This question already has an answer here:
When I'm working on a algorithm problem, I can usually find a top-down solution that works with recursion.
Then for optimization purpose I try to do a bottom-up approach (dynamic programming) to remove the recursion stack, and I struggle. I have a really hard time initializing the array with the correct value, and then fill it with the answers to the sub problems.
Do you have any recommendations / tips on how to "convert" a top-down solution to a bottom-up algorithm?