加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

216. Combination Sum III

发布时间:2020-12-14 04:37:41 所属栏目:大数据 来源:网络整理
导读:Find all possible combinations of? k ?numbers that add up to a number? n ,given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers. Note: All numbers will be positive integers. The solution set
Find all possible combinations of? k?numbers that add up to a number? n,given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.

Note:

  • All numbers will be positive integers.
  • The solution set must not contain duplicate combinations.

Example 1:

Input: k = 3,n = 7
Output: [[1,2,4]]

Example 2:

Input: k = 3,n = 9
Output: [[1,6],[1,3,5],[2,4]]



与上面的题不同,此题的候选集变成1,2,4,5,6,7,8,9。另外对output的长度有限制。所以在搜索的时候我们要记录当前长度
当output的长度不符合要求的时候,及时return



 1 class Solution {
 2 public:
 3     vector<vector<int>> finalres ;
 4     vector<vector<int>> combinationSum3(int k,int target) {
 5         vector<int> curres;
 6         help(0,curres,1,k,target);
 7         return finalres;
 8         
 9     }
10     void help(int cursum,vector<int>& curres,int index,int k,int target){
11         if(cursum==target&& k==0)
12             finalres.push_back(curres);
13         if(cursum>target||k<0)
14             return;
15         for(int i = index;i<=9;i++){
16             curres.push_back(i);
17             help(cursum,i+1,k-1,target-i);
18             curres.pop_back();
19 
20         }
21     }
22 };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读