我在网上找到了这个算法但它有效,但我不知道为什么。即使有一个视频解释它。
以下是代码:
public int numberOfSolutionsOnSpace(int total, int arr[]){
int temp[] = new int[total+1];
temp[0] = 1;
for(int i=0; i < arr.length; i++){
for(int j=1; j <= total ; j++){
if(j >= arr[i]){
temp[j] += temp[j-arr[i]];
}
}
}
return temp[total];
}
说明:YouTube
你能帮我理解为什么这个算法有效吗?确切地说,我不明白为什么我们必须“返回步骤添加”(视频2:30)