반응형
# Problem
Given an integer array nums of unique elements, return all possible subsets (the power set). The solution set must not contain duplicate subsets. Return the solution in any order.
Constraints:
|
모든 부분 집합 출력하기
# My Answer
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result=[[]]
temp=[]
def dfs(l):
for i in range(len(l)):
new=l[i:]
new.remove(l[i])
temp.append(l[i])
dfs(new)
result.append(temp[:])
temp.pop()
dfs(nums)
return result
앞의 조합 문제에서 값을 하나씩 넣을 때마다 결과 리스트에 추가하기
# Solution 1 - 트리의 모든 DFS 결과
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
result = []
def dfs(index, path):
# 매 번 결과 추가
result.append(path)
# 경로를 만들면서 DFS
for i in range(index, len(nums)):
dfs(i + 1, path + [nums[i]])
dfs(0, [])
return result
반응형
'Algorithm > LEET CODE ( 파이썬 알고리즘 인터뷰)' 카테고리의 다른 글
❗️[LEET CODE] 207. Course Schedule (0) | 2021.04.10 |
---|---|
❗️[LEET CODE] 332. Reconstruct Itinerary (0) | 2021.04.10 |
[LEET CODE] 39. Combination Sum (0) | 2021.04.09 |
[LEET CODE] 77. Combinations (0) | 2021.04.09 |
❗️[LEET CODE] 46. Permutations ( 객체 복사 ) (0) | 2021.04.07 |