leetcode 216. 组合总和 III

Posted 巴蜀小小生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 216. 组合总和 III相关的知识,希望对你有一定的参考价值。

 

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

说明:

  • 所有数字都是正整数。
  • 解集不能包含重复的组合。 

示例 1:

输入: k = 3, n = 7
输出: [[1,2,4]]

示例 2:

输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]

 

 思路:和上一题的思路一样, 只是加了一个条件, 长度要是规定的长度

 1 class Solution {
 2 public:
 3     void dfs(vector<vector<int>>&ans, vector<int>&subseq, int k, int n, int index){
 4         if(n==0 && subseq.size()==k){
 5             ans.push_back(subseq);
 6             return;
 7         }
 8         for(int i=index; i<10; i++){
 9             subseq.push_back(i);
10             dfs(ans, subseq, k, n-i, i+1);
11             subseq.pop_back();
12         }
13     }
14     vector<vector<int>> combinationSum3(int k, int n) {
15         vector<int> subseq;
16         vector<vector<int>> ans;
17         dfs(ans, subseq, k, n, 1);
18         return ans;
19     }
20 };

 

以上是关于leetcode 216. 组合总和 III的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 216. 组合总和 III

LeetCode 216. 组合总和 III(Combination Sum III)

216组合总和III

LeetCode - #216 组合总和 III

Leetcode No.216 组合总和 III

Leetcode刷题Python216. 组合总和 III