노트/Algorithm : 알고리즘

[leetcode] 78. Subsets

Diane_ 2023. 2. 8. 15:26

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.

 

Example 1:

Input: nums = [1,2,3]
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

Example 2:

Input: nums = [0]
Output: [[],[0]]

 

Constraints:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • All the numbers of nums are unique.

 

class Solution(object):
    def subsets(self, nums):
        """
        :type nums: List[int]
        :rtype: 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