https://leetcode-cn.com/problems/combination-sum-iii/
class Solution {
public List<List<Integer>> combinationSum3(int k, int n) {
List<List<Integer>> unans=combine(9,k);
List<List<Integer>> ans=new ArrayList<>();
for (List<Integer> i:unans) {
int sum=0;
for (Integer j:i) {
sum=sum+j;
}
if (sum==n){
ans.add(i);
}
}
return ans;
}
public List<List<Integer>> combine(int n, int k) {
List<List<Integer>> ans = new LinkedList<>();
for(int i=0;i<Math.pow(2,n);i++){
String string=Integer.toBinaryString(i);
if (string.length()-string.replace("1","").length()==k){
string=reverse(string);
List<Integer> list = new LinkedList<>();
for (int j=0;j<string.length();j++){
if (string.charAt(j)=='1'){
list.add(j+1);
}
}
ans.add(list);
}
}
return ans;
}
public static String reverse(String string){
StringBuffer stringBuffer = new StringBuffer(string);
StringBuffer reversestring = stringBuffer.reverse();
return reversestring.toString();
}
}