1. 题意
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。
请你从 nums 中找出并返回总和为 target 的元素组合的个数
2. 题解
与爬楼梯相似,
只是一次可以爬的阶梯数变多了,爬楼梯一次只能 c l i b = [ 1 , 2 ] clib=[1,2] clib=[1,2]
class Solution {
public:
int combinationSum4(vector<int>& nums, int target) {
vector<unsigned> dp(target + 1, 0);
dp[0] = 1;
for (int i = 1; i <= target; ++i) {
for (int num: nums) {
if (i >= num) {
dp[i] += dp[i - num];
}
}
}
return dp[target];
}
};