Note:spa
Example 1:code
Input: k = 3, n = 7 Output: [[1,2,4]]
Example 2:blog
Input: k = 3, n = 9 Output: [[1,2,6], [1,3,5], [2,3,4]]
與上面的題不一樣,此題的候選集變成1,2,3,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,curres,i+1,k-1,target-i); 18 curres.pop_back(); 19 20 } 21 } 22 };