/** * 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> { 3 A.sort(); 4 val result = ArrayList
>(); 5 helper(result, ArrayList (), A, 0); 6 return result; 7 } 8 9 fun helper(result: ArrayList >, arr: ArrayList , A: IntArray, index: Int){10 result.add(ArrayList (arr));//new reference for arr11 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 }