バック法Leetcode -78の話題。サブセット(サブセット)

バック法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 )。
        
    } 
}

 

おすすめ

転載: www.cnblogs.com/qinyuguan/p/11330162.html