思路


解答

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] : (注意事項)


參考資料