Skip to main content

78. Subsets

Python

Package Answer

  • Quick answer with Python built-in combinations package
from itertools import combinations


class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result = []
for length in range(len(nums)+1):
for comb in combinations(nums, length):
result.append(comb)
return result

Loop and attach

class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result = [[]]
for num in nums:
result += [item+[num] for item in result]
return result

Backtracking

  • (TODO)

Javascript

 var subsets = function(nums) {
var result = [[]];
var backtrack = function(start, max, record) {
if (record.length === max) {
result.push(record.slice());
return;
}

for (let i = start; i < nums.length; i++) {
record.push(nums[i])
backtrack(i + 1, max, record);
record.pop();
}
}

for (let k = 1; k <= nums.length; k++) {
backtrack(0, k, [])
}
return result;
};