件名の説明:
無反復整数配列要素の組所与 NUMSをすべての可能なサブセット(パワー設定)の配列を返し、。
説明:ソリューションセットの重複サブセットを含めることはできません。
例: 入力:NUMS = [1,2,3] 出力 : [ [3]、 [1]、 [2]、 [2,3]、 [1,3]、 [2,3]、 [1 、2]、 [] ]
トピック分析:バックトラッキングプロセスは、最後に移動するための方法を深さ優先探索を実行することで、戻さ行き止まり、引き続き、あなたが開始点に戻るまで、このように続けます。
コードの実装:
クラスソリューション{ パブリック静的リスト<リスト<整数>>サブセット(INT [] NUMS){ リスト<リスト<整数>> RES =新規のArrayList <>(); バックトラック(0、NUMS、解像度、新しいのArrayList <>()); 解像度を返します。 } プライベート静的ボイドバックトラック(INT I、INT [] NUMS、リスト<リスト<整数>> RES、のArrayList <整数> TMP){ res.add(新規のArrayList <>(TMP))。 用(INT J = I; J <nums.length; J ++){ tmp.add(NUMS [J])。 バックトラック(J + 1、NUMS、RES、TMP)。 tmp.remove(tmp.size() - 1)。 } } }