题目链接
思路
- 和79几乎一样,只不过加了一个子集元素数目的判断~ 需要先判断一个子集有多少个元素,如果不符合数目就需要return
class Solution {
int maxCount, maxVal;
List<List<Integer>> result;
public List<List<Integer>> combine(int n, int k) {
maxCount = k;
maxVal = n;
result = new ArrayList<>();
helper(0, 1, new ArrayList<>());
return result;
}
private void helper(int count, int n, List<Integer> nums) {
if (count == maxCount)
result.add(new ArrayList<>(nums));
else if(n <= maxVal){
helper(count, n + 1, nums);
nums.add(n);
helper(count + 1, n + 1, nums);
nums.remove(nums.size() - 1);
}
}
}