leetcode 377. Combination Sum IV 动态规划

Combination Sum IV
早上起来看到朋友微信说出新题了,于是打开leetcode 看了一下,原来又是Combination Sum。 打开之后果断用了之前三个Combination Sum 用到的 Backtracking, then submit, TIME LIMIT EXCEEDED, XD. 看了下tags,原来是用DP,于是写了个DP的sulotion

tags

状态转移方程: combinationSum4(x): f(x)
f(target) = f(target - nums[0]) + f(target - nums[1]) + ... + f(target - nums.back())

附上之前三个combinationSum的题,没有做前三个的可以先做一下前三个
Combination Sum
Combination Sum II
Combination Sum III

    int combinationSum4(vector<int>& nums, int target) {
        vector<int> res(target + 1, 0);
        res[0] = 1;
        for (int i = 1; i <= target; i++)
            for (int n: nums)
                if (i >= n)
                    res[i] += res[i - n];
        return res.back();
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • (欢迎转载,但请注明出处并附带链接)算法好久没复习了,今天看见一妹子在办公室刷Leetcode,顿时我也来了兴趣,...
    Nick_Zuo阅读 681评论 0 3
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 17,909评论 2 36
  • 动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...
    廖少少阅读 3,322评论 0 18
  • 如果一个人到你这里来,就大声嚷嚷,说我给你们送钱来了,然后呢,每次消费也就最低消费的时候,还总是趾高气扬的样子,你...
    开心的灵通阅读 175评论 0 0