题目链接

组合总和IV

题目描述

image.png

实现代码

该题动态规划思想跟零钱兑换II 思想类似,区别在于一个是组合问题一个是排列问题;在本题中,{1,3}和{3,1}是两个方案,因此需要先遍历金额在遍历零钱;

实现代码:

  1. class Solution {
  2. public int combinationSum4(int[] nums, int target) {
  3. int[] dp = new int[target + 1];
  4. int len = nums.length;
  5. dp[0] = 1;
  6. for(int i=1; i<=target; i++) {
  7. for(int num : nums) {
  8. if(num <= i) {
  9. dp[i] += dp[i - num];
  10. }
  11. }
  12. }
  13. return dp[target];
  14. }
  15. }