Yes, I would say that you are totally on the right track here. The problem you are solving is essentially the subset-sum problem and your solution is the standard dynamic programming one (see http://en.wikipedia.org/wiki/Subset_sum_problem#Pseudo-polynomial_time_dynamic_programming_solution).
In terms of correctness, I would say that explaining the recurrence relation and the base cases would be fine. As a stylistic point, I would not go through the code and justify every line, but rather focus on the big picture. So just explain what your table represents and how you can set up base cases and recurrence relation and the reader can easily go look at the code and see that you implemented that.
For runtime: Yes, your algorithm is just looping through the elements of the table and filling them in so your explanation is correct.