//dfs
class Solution {
public List<List<Integer>> combine(int n, int k) {
int[] nums = new int[n];
for(int i = 1; i <= n; i++) {
nums[i - 1] = i;
}
List<List<Integer>> resultList = new ArrayList<>();
List<Integer> result = new ArrayList<>();
int start = 0;
helper(nums, k, start, resultList, result);
return resultList;
}
private void helper(int[] nums,
int k,
int start,
List<List<Integer>> resultList,
List<Integer> result) {
if(result.size() == k) {
resultList.add(new ArrayList<Integer>(result));
return;
}
for(int i = start; i < nums.length; i++) {
result.add(nums[i]);
helper(nums, k, i + 1, resultList, result);
result.remove(result.size() - 1);
}
}
}
Combinations
最新推荐文章于 2019-09-01 10:28:35 发布