8000 Merge pull request #1 from ignacio-chiazzo/subsets · SivaCse/leetcode-javascript@bd0c05b · GitHub
[go: up one dir, main page]

Skip to content

Commit bd0c05b

Browse files
Merge pull request chihungyu1116#1 from ignacio-chiazzo/subsets
third solution subset
2 parents efdff0e + 47a816e commit bd0c05b

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

78 Subsets.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ var generate = function(nums, index, cur, result) {
3232
result.push(cur.slice());
3333
return
3434
}
35-
35+
3636
generate(nums, index + 1, cur, result);
3737
cur.push(nums[index]);
3838
generate(nums, index + 1, cur, result);
@@ -42,11 +42,9 @@ var generate = function(nums, index, cur, result) {
4242

4343

4444
// second try
45-
46-
4745
var subsets = function(nums) {
4846
var res = [[]];
49-
47+
5048
function generate(nums, i, cur, res) {
5149
for(; i < nums.length; i++) {
5250
cur.push(nums[i]);
@@ -55,7 +53,24 @@ var subsets = function(nums) {
5553
cur.pop();
5654
}
5755
}
58-
56+
5957
generate(nums, 0, [], res);
6058
return res;
61-
};
59+
};
60+
61+
// Third solution
62+
var subsets = function(nums) {
63+
var results = [];
64+
combine(nums, 0, [], results);
65+
return results;
66+
}
67+
68+
var combine = function(nums, index, partial, results) {
69+
if(index === nums.length) {
70+
results.push(partial);
71+
return;
72+
}
73+
74+
combine(nums, index + 1, partial, results);
75+
combine(nums, index + 1, partial.concat([nums[index]]), results);
76+
}

0 commit comments

Comments
 (0)
0