バック法Leetcode -78の話題。サブセット(サブセット)
無反復整数配列要素の組所与 NUMSをすべての可能なサブセット(パワー設定)の配列を返し、。
説明:ソリューションセットの重複サブセットを含めることはできません。
例:
入力:NUMS = [1,2,3] 出力 : [ [3]、 [1]、 [2]、 [2,3]、 [1,3]、 [2,3]、 [1,2 ]、 [] ]
分析:
この質問は彼に(空のセットを含む)のサブセットを尋ねる質問の配列に、バックトラックの非常に基本的な質問についてです。
ACコード:
クラスのソリューション{ リスト <リスト<Integer型>> ANS = 新しい ArrayListを<> (); 公衆リスト<リスト<整数>>サブセット(int型[] NUMS)を{ INT [] VIS = 新しい INT [nums.length]。 DFS(NUMS、新しいのArrayList <Integer型>()、0 ); 戻るANSを。 } 公共 ボイド DFS(int型 NUMS []、のArrayList <整数>リスト、int型のステップ){ 場合(ステップ== nums.length){ ans.add(新規のArrayList <> (リスト))。 返します。 } list.add(NUMS [ステップ])。 DFS(NUMS、リスト、ステップ +1 )。 list.remove(はlist.size() -1 )。 DFS(NUMS、リスト、ステップ +1 )。 } }