美文网首页
LeetCode 377.组合总和 IV

LeetCode 377.组合总和 IV

作者: TUCJVXCB | 来源:发表于2019-08-24 19:04 被阅读0次

    题目大意:给你一个数组和一个目标值,要你算出用这个数组里面的数加起来等于目标值,总共有多少种组合方式。(每个数字可以重复使用)

    方法:DP


    class Solution {
        public int combinationSum4(int[] nums, int target) {
            int[] dp = new int[target + 1];
            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];
        }
    }
    

    如果把题目改一下,改成不能重复使用数组中的数字。

    class Solution {
        public int combinationSum4(int[] nums, int target) {
            int[] dp = new int[target + 1];
            dp[0] = 1;
            for (int num : nums) {
                for (int i = target; i >= num; i--) {
                    dp[i] += dp[i -  num];
                }
            }
            return dp[target];
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 377.组合总和 IV

          本文链接:https://www.haomeiwen.com/subject/ptwqectx.html