首页 > 其他 > 详细

leetcode 216. 组合总和 III

时间:2018-05-13 21:51:40      阅读:325      评论:0      收藏:0      [点我收藏+]

 

找出所有相加之和为 的 个数的组合组合中只允许含有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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!