题意:给一个数组,和一个k,找出所有的k个数的组合
思路:遍历数组,利用DFS找出所有结果,具体见代码
思想:DFS
复杂度:时间O(n^2),空间O(n)
class Solution {
List<List<Integer>> res = new ArrayList();
public List<List<Integer>> combine(int n, int k) {
get(k, 1, n, new ArrayList<Integer>());
return res;
}
void get(int k, int index, int n, List<Integer> list) {
if(k == 0) {
res.add(new ArrayList(list));
return;
}
for(int i=index;i<=n;i++) {
list.add(i);
get(k-1, i+1, n, list);
list.remove(list.size() - 1);
}
}
}
网友评论