美文网首页动态规划
leetcode 377-dp 不能用递归的排列组合

leetcode 377-dp 不能用递归的排列组合

作者: Ariana不会哭 | 来源:发表于2019-01-06 07:53 被阅读10次
图片.png

C++:

////这个题递归会TLE 所以不可以
//void helper(vector<int>&nums, int target, int& ans, int curSum) {
//  if (curSum == target) {
//      ans++;
//      return;
//  }
//  if (curSum > target)
//      return;
//  for (int i = 0; i < nums.size(); i++) {
//      helper(nums, target, ans, curSum + nums[i]);
//  }
//  return;
//}
//int combinationSum4(vector<int>& nums, int target) {
//  int ans = 0;
//  helper(nums, target, ans, 0);
//  return ans;
//}

//其中dp[i]表示目标数为i的解的个数
int combinationSum4(vector<int>& nums, int target) {
    vector<int> dp(target + 1);
    dp[0] = 1;
    for (int i = 1; i <= target; ++i) {
        for (auto a : nums) {
            if (i >= a) 
                dp[i] += dp[i - a];
        }
    }
    return dp.back();
}

相关文章

网友评论

    本文标题:leetcode 377-dp 不能用递归的排列组合

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