37. Subsets


道しるべ
すべての部分集合
  • を返します.

  • 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

  • この問題は構造木,木によるDFSの問題で解決できる.

  • 入力値が[1,2,3]の場合、以下の簡単なツリーを作成できます.

  • 必要な結果はDFSで出力できます.


  • DFSコードを実装します.

  • パスpathを作成するとともに,インデックスを1つ増やすごとに深く探索する.

  • 他の終了条件なしでナビゲーションが完了すると、関数は自動的に終了します.

  • 一部のコレクションは、すべてのナビゲーションのパスが最終的に正しいことを示します.したがって、次のように、ナビゲーションのたびに結果を追加できます.