今天是第41天刷leetcode,立个flag,打卡60天。
算法挑战链接
377. 组合总和 Ⅳhttps://leetcode.cn/problems/combination-sum-iv/
第一想法
题目理解:找出有多少种排列可以相加得倒target。好像和上一次的零钱兑换II很相似。但是仔细观察会发现,有点不一样的是这个是排列,上一个是组合。
那代码不就是调换一次for循环的顺序。
代码如下
class Solution {
public int combinationSum4(int[] nums, int target) {
int dp[] = new int[target + 1];
dp[0] = 1;
for (int i = 0; i <= target; i++) {
for (int j = 0; j < nums.length; j++) {
if(i >= nums[j]) {
dp[i] += dp[i - nums[j]];
}
}
}
return dp[target];
}
}
今日收获
复杂的事情也可以简单的做