原题题目
代码实现(首刷小部分看解大部分自解)
int combinationSum4(int* nums, int numsSize, int target){
unsigned long* dp = (unsigned long*)malloc(sizeof(unsigned long) * (target+1));
int i,j;
memset(dp,0,sizeof(unsigned long) * (target+1));
dp[0] = 1;
for(i=1;i<=target;i++)
{
for(j=0;j<numsSize;j++)
{
if(i >= nums[j])
dp[i] += dp[i-nums[j]];
}
}
return dp[target];
}