78. Subsets

JJ·2020년 12월 24일
0

Algorithms

목록 보기
28/114
class Solution {
    List<List<Integer>> result = new ArrayList<List<Integer>>();
    int n, k;
    
    public List<List<Integer>> subsets(int[] nums) {
        n = nums.length;
        for (k = 0; k < n + 1; k++) {
            backtrack(0, new ArrayList<Integer>(), nums);
        }
        
        return result;
        
    }
    
    public void backtrack(int first, ArrayList<Integer> cur, int[] nums) {
        if (cur.size() == k) {
            result.add(new ArrayList(cur));
        }
        
        for (int i = first; i < n; i++) {
            cur.add(nums[i]);
            backtrack(i + 1, cur, nums);
            cur.remove(cur.size() - 1);
        }
    }
}

backtrackㅇㄹ 써야하는건 알았는데 어떻게 쓰는지 모르겠어서...^^ 답안을 봤다

Runtime: 1 ms, faster than 59.97% of Java online submissions for Subsets.
Memory Usage: 38.9 MB, less than 98.00% of Java online submissions for Subsets.

0개의 댓글