반응형
# 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 |