78. Subsets

/**
* 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 }

 




posted @ 2019-02-01 18:39  johnny_zhao  阅读(119)  评论(0编辑  收藏  举报