问题
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合
例子
思路
-
方法1
回溯
-
方法2
代码
//方法1
class Solution {
public List<List<Integer>> combine(int n, int k) {
List<List<Integer>> list = new ArrayList<>();
get(n,k,list,new ArrayList<Integer>(),1);
return list;
}
public void get(int n,int k,List<List<Integer>> list, List<Integer> temp_list, int start) {
if(temp_list.size()==k) {
list.add(new ArrayList<Integer>(temp_list));
return;
}
else{
for(int i=start; i<=n; i++) {
temp_list.add(i);
get(n,k,list,temp_list,i+1);
temp_list.remove(temp_list.size()-1);
}
}
}
}
//方法2