1、剪枝+回溯:

class Solution {private:vector<int> candidates;vector<vector<int>> res;vector<int>path;void DFS(int start, int target){if(target == 0){res.push_back(path);return ;}for(int i = start;i < candidates.size() && target - candidates[i] >= 0;i++){path.push_back(candidates[i]);DFS( i, target - candidates[i]);path.pop_back();}}public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {sort(candidates.begin(), candidates.end());this->candidates = candidates;DFS(0, target);return res;}
};

2、

class Solution {private:vector<int> candidates;vector<vector<int>> res;vector<int>path;void DFS(int sum, int start, int target){if(target == sum){res.push_back(path);return ;}for(int i = start;i < candidates.size();i++){if(sum + candidates[i] > target)continue;path.push_back(candidates[i]);DFS(sum + candidates[i],i, target);path.pop_back();}}
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {this->candidates = candidates;DFS(0, 0, target);return res;}
};

3、动态规划:(有点慢)

class Solution
{public:vector<vector<int>> combinationSum(vector<int>& candidates,int target){unordered_map<int,set<vector<int> > >dict;for(int i = 0; i <= target; i++){for(int it : candidates){if(i == it){dict[i].insert(vector<int>{it});}else if(i > it){for(auto ivec : dict[i - it]){ivec.push_back(it);sort(ivec.begin(), ivec.end());dict[i].insert(ivec);}}}}vector<vector<int> > res;for(auto it : dict[target]){res.push_back(it);}return res;}
};

leetcode--组合总数相关推荐

  1. Leetcode 40组合总数(回溯)Ⅱ41缺失的第一个正数42接雨水

    维护公众号:bigsai ,回复进群加入打卡,回复bigsai分享一些学习资源! 上周第一次 LeetCode 36有效的数独&37解数独(八皇后问题) 上周第二次 LeetCode 38外观 ...

  2. leetcode第377题组合总数

    leetcode第377题组合总数 **思路:**动态规划 一眼看上去就是动态规划完全背包问题,凑零钱里面说到 先遍历物品在遍历背包是求组合 先遍历背包在遍历物品是求排列 没什么可说的,还算是比较合适 ...

  3. Leetcode 组合总和 与 排列组合相关问题

    Leetcode 组合总和 与 全排列相关问题 组合总和 题目链接: Leetcode 39.组合总和 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 c ...

  4. mysql合并统计总数,mysql统计多表交织组合总数

    mysql统计多表交叉组合总数 >mysql -h localhost -u root -p mysql> use world; Database changed mysql> sh ...

  5. mysql合并统计总数_mysql统计多表交织组合总数

    mysql统计多表交叉组合总数 >mysql -h localhost -u root -p 欢迎大家阅读<mysql统计多表交织组合总数>,跪求各位点评,by 搞代码 mysql& ...

  6. LeetCode第 377 题:组合总数 IV(C++)

    377. 组合总和 Ⅳ - 力扣(LeetCode) 先看这个图,就明白很多了,相当于计算叶子节点数量. 其实这题更容易想到dfs回溯,但是重复子问题太多的话,可能会超时,所以最好使用dp. 参考:希 ...

  7. leetcode -39组合总数

    搜就完事了,没想着优化.唉~太菜,给一个位置标记位置,然后通过该位置向该位置及该位置以下寻找,这样不存在什么重复回去查找问题. 如果总结大于目标值,回溯一下,如果不大于继续. class Soluti ...

  8. leetcode 组合总和(Java)

    leetcode题目 组合总和 -- leetcode 39 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target , 找出 candidates 中所有可以使数字和为 ...

  9. leetcode 组合总和

    39. 组合总和 给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合.candidat ...

  10. Leetcode 组合总和问题

    文章目录 39.组合总和 40.组合总和Ⅱ 组合总和Ⅲ 组合总和Ⅳ 39.组合总和 题目设定: 给的数组没有重复元素,同一个元素可以无限引用,最后的结果不能重复 树形图如下: 因为没有重复元素,不用考 ...

最新文章

  1. 更改ORACLE归档路径及归档模式
  2. java frame 显示图片_java 图像显示
  3. udp需要arp请求吗_当你随便浏览一个网页时,你知道背后做了多少工作吗?
  4. Win2003 + SQL 2005 做数据库集群总结(虚拟机)
  5. javascript 中的暗物质 - 闭包
  6. 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
  7. RCP:给GEF编辑器添加网格和标尺。
  8. c语言存储的逻辑顺序,栈是不是顺序储存的线性结构啊?
  9. 优化mysql的21个建议_MySQL优化小建议
  10. hdfs读写流程_必须掌握的分布式文件存储系统—HDFS
  11. MFC函数——CWnd::OnCreate
  12. mabatis的工作原理
  13. sublime编辑器 3143 license
  14. 201671030113 词频统计软件项目报告
  15. 用Photoshop制作印章
  16. 计算机word中的行间距在哪里设置,word怎么把所有行间距设置成22磅
  17. Perl笔记-use strict编译指令
  18. 无法斑驳的青春,折射出心里每一丝憧憬和每一缕不甘
  19. require,import和import()函数的区别
  20. ArcGIS 批量栅格转要素工具——批量栅格转面

热门文章

  1. python自学视频教程 38-自学 Python,视频教程和代码一看就懂,动手就废,应该这么学...
  2. python游戏编程入门下载-Python游戏编程入门 中文pdf扫描版|网盘下载内附地址提取码|...
  3. python基础教程书籍-Python学习必看书籍_带你高效学习
  4. python软件下载3版本-【python3下载】python3下载安装 中文版-七喜软件园
  5. python使用-Python 应该怎么去练习和使用?
  6. python和c语言的区别-c语言和python的区别
  7. python学习手册-Python 重点知识整理(基于Python学习手册第四版)
  8. 1.零基础Java基础教程9天入门
  9. php7异常抛出的好处,PHP7的错误与异常
  10. 在虚拟DOM和Diff算法中为什么不建议使用index作为key值?