1. 题目

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。

说明:
所有数字都是正整数。
解集不能包含重复的组合。 示例 1:
输入: k = 3, n = 7
输出: [[1,2,4]]示例 2:
输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

相关题目LeetCode 39. 组合总和(排列组合 回溯)

2. 回溯解题

  • 关键在于如何避免重复
  • 每次取了一个数 i ,那么下次取得数只能比 i 大,这样避免重复组合
class Solution {public:vector<vector<int>> combinationSum3(int k, int n) {vector<vector<int>> ans;vector<int> cb;bt(0,0,k,0,n,cb,ans);return ans;}void bt(int num, int count, int k, int sum, int n, vector<int> &cb, vector<vector<int>> &ans) {if(sum > n || 9-num < k-count)//和超了,或者剩余的数不够个数return;if(count == k){if(sum == n)ans.push_back(cb);return;}for(int j = num+1; j <= 9; ++j)//每次取num+1,避免重复{cb.push_back(j);bt(j,count+1,k,sum+j,n,cb,ans);cb.pop_back();}}
};

0 ms 6.8 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 216. 组合总和 III(排列组合 回溯)相关推荐

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

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

  2. LeetCode 39. 组合总和(排列组合 回溯)

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

  3. Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合

    题目:216. 组合总和 III - 力扣(LeetCode) 思路: 1.递归函数参数和返回值:首先需要两个全局变量一维path数组和二维result数组,path数组用来收集路径上的元素,resu ...

  4. leetcode系列--216.组合总和 III

    leetcode系列–第216题.组合总和 III 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字.说明:所有数字都是正整数.解集不 ...

  5. LeetCode—216. 组合总和 III

    216. 组合总和 III 题目描述: 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 .该列表不能包含相同的组 ...

  6. LeetCode 216组合总和III 17电话号码的字母组合

    文章目录 216组合总和III c++ 代码实现 python 代码实现 17.电话号码的字母组合 c++ 代码实现 python代码实现 216组合总和III 找出所有相加之和为 n 的 k 个数的 ...

  7. Suzy找到实习了吗Day25 | 回溯算法进行时:216. 组合总和 III,17电话号码

    216. 组合总和 III 题目 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 .该列表不能包含相同的组合两次 ...

  8. ​LeetCode刷题实战216:组合总和 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  9. 代码随想录 第二十四天 17.电话号码的字母组合||216.组合总和III

    216.组合总和III 力扣题目链接(opens new window) 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: ...

最新文章

  1. 简明python教程购买-简明Python教程:基本语法
  2. KMP算法的动态规划解说
  3. 2018-12-25 数据库插入数据
  4. FD32 查询客户信贷管理中,销售值是怎么来的?
  5. python动态生成html报表_Python应用phy模块生成html表格
  6. 【渝粤教育】国家开放大学2019年春季 3896人文英语1 参考试题
  7. ***jquery选择器 之 获取父级元素、同级元素、子元素
  8. linux-centos7 常用的基本命令--文件内容查看、硬链接和软链接
  9. 2021-08-26
  10. HBase全网最佳学习资料汇总
  11. JavaWeb将图片显示在浏览器中
  12. 全自动与半自动手表的区别_半自动和全自动的区别在哪里?
  13. SQLyog入门教程:安装与使用
  14. 微信 PC(电脑端) 多开批处理
  15. 对标西湖大学?中国芯片首富捐资200亿办高校!地址选在了这里
  16. 使用git将远程仓库和本地仓库关联
  17. 防止机械/移动硬盘休眠 - NoSleepHD
  18. 欧几里得算法和扩展欧几里得
  19. Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制
  20. 如何在Linux上部署web程序

热门文章

  1. yii2 ajax分页,Yii框架分页技术实例分析
  2. xcode10 自定义代码块
  3. LeetCode:验证回文串【125】
  4. Linux新手必须掌握的命令(2)
  5. FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!
  6. MyEclipse中SVN的常见的使用方法
  7. Linux学习笔记(4) - 文件系统
  8. 周末生活日记|我们和楠哥
  9. 我们是怎样发出声音的?
  10. recovery模式下支持ADB连接和串口操作