Can someone explain why dp array size is always created with 1 size greater than the target and which index of dp to return for the answer? Need some good explaination on this.