Programming/leetcode

78. Subsets

홍열 2021. 3. 3. 14:41
728x90

주어진 배열의 모든 부분 set을 출력하는 문제 

 

dfs를 호출할 때, cur_lst + [num[i]]와 cur_lst.append(nums[i])가 무슨 차이가 있을까?

cur_lst + [num[i]] -> 새로운 주소에  list가 만들어지고 

cur_lst.append(nums[i]) -> 기존 주소에 nums[i]를 추가한다. 

 

이해가 잘 되지 않아, 저자에게 질문을 했다.

 

    def subsets(self, nums: List[int]) -> List[List[int]]:
        results = []

        def dfs(cur_lst, index):
            results.append(cur_lst)

            for i in range(index, len(nums)):
                dfs(cur_lst+[nums[i]], i+1)

        dfs([], 0)
        return results