/**
* 78. Subsets
* https://leetcode.com/problems/subsets/description/
*
* Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3]
Output:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
* */
1 class Solution { 2 fun subsets(A: IntArray): List<List<Int>> { 3 A.sort(); 4 val result = ArrayList<ArrayList<Int>>(); 5 helper(result, ArrayList<Int>(), A, 0); 6 return result; 7 } 8 9 fun helper(result: ArrayList<ArrayList<Int>>, arr: ArrayList<Int>, A: IntArray, index: Int){ 10 result.add(ArrayList<Int>(arr));//new reference for arr 11 for (i in index..(A.size - 1)) { 12 arr.add(A[i]); 13 helper(result, arr, A, i + 1); 14 arr.removeAt(arr.size - 1); 15 } 16 } 17 }