Only 1 to 99 digits can be used here, and the number of digits used is limited. Method is similar
1 Public classSolution {2 Public voidDP (list<list<integer>> List, list<integer> Listone,intTmpsum,intStartintKinttarget) {3 if(tmpsum==target&&listone.size () = =k) {4list<integer> NewList =NewLinkedlist<integer>();5 Newlist.addall (listone);6 List.add (newlist);7 return;8 }9 if(Listone.size () ==k)return;Ten //Listone.add (start); One for(ints=start;s<=9;s++){ A Listone.add (s); -DP (list,listone,tmpsum+s,s+1, k,target); -Listone.remove (Listone.size ()-1); the } - //Listone.remove (Listone.size ()-1); - return; - } + PublicList<list<integer>> combinationSum3 (intKintN) { -List<list<integer>> List =NewLinkedlist<list<integer>>(); +List<integer> Listone =NewLinkedlist<integer>(); A for(inti=1;i<=9;i++){ at Listone.add (i); -DP (list,listone,i,i+1, k,n); -Listone.remove (Listone.size ()-1); - } - returnlist; - } in}
[Leetcode] Combination Sum III