Leetcode216
思路
解答
class Solution {
List<List<Integer>> ans = new ArrayList<>();
public List<List<Integer>> combinationSum3(int k, int n) {
dfs(k, n, new ArrayList<>(), 1);
return ans;
}
public void dfs(int k, int target, List<Integer> inner, int level){
if(target == 0 && inner.size() == k){
ans.add(new ArrayList<>(inner));
return;
}
if( target < 0 || inner.size() > k){
return;
}
for(int i = level ; i <= 9 ; i++){
inner.add(i);
dfs(k, target - i, inner, i+1);
inner.remove(inner.size() - 1);
}
}
}
時間空間複雜度
時間複雜度 : O(N^2)
兩層迴圈
空間複雜度 : O(N^2)
2-D陣列
example
Vocabulary
xxxx [KK] : (注意事項)