-
Notifications
You must be signed in to change notification settings - Fork 20
/
Subsets.kt
48 lines (41 loc) · 880 Bytes
/
Subsets.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* Given a set of distinct integers, nums, return all possible subsets (the power set).
*
* Note: The solution set must not contain duplicate subsets.
*
* For example,
* If nums = [1,2,3], a solution is:
*
* [
* [3],
* [1],
* [2],
* [1,2,3],
* [1,3],
* [2,3],
* [1,2],
* []
* ]
*
* Accepted.
*/
class Subsets {
fun subsets(nums: IntArray?): List<List<Int>> {
val results = mutableListOf<List<Int>>()
results.add(listOf())
if (nums == null || nums.isEmpty()) {
return results
}
nums.sort()
for (i in nums) {
val size = results.size
for (j in 0 until size) {
val list = mutableListOf<Int>()
list.addAll(results[j])
list.add(i)
results.add(list)
}
}
return results
}
}