码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 216. 组合总和 III

时间:2018-05-13 22:06:33      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:for   void   pre   col   leetcode   ++   oid   com   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

标签:for   void   pre   col   leetcode   ++   oid   com   iii   

原文地址:https://www.cnblogs.com/mr-stn/p/9033525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!