トピックタグ:バックトラック
DFSを使用して、tempListを確立し、各番号に加え再帰。
数字はデジタルtempList特定の外観コードをチェックスキップの使用に、同じではありませんので。
Javaのソリューション:
ランタイム:1ミリ秒、より速くより92.59パーセント
メモリ使用率:41.5メガバイト未満5.68 %
完了日:2019年11月8日
キーポイント:重複する数字はありません
クラスのソリューション{ リスト <リスト<Integer型>> RES。 公衆リスト<リスト<整数>>並び替える(INT [] NUMS){ RES = 新規のArrayList <> (); 一覧 <整数> tempList = 新しい ArrayListを<> (); // のArray.sort(NUMS)。 DFS(NUMS、tempList)。 リターンのres; } プライベート ボイド DFS(INT [] NUMS、一覧<整数> tempList){ 場合(tempList.size()== nums.length){ res.add(新ArrayList <> (tempList))。 リターン; } ため(intは I ++; I <nums.length I = 0 ){ 場合(tempList.contains(NUMS [I]))// この数が既に存在する場合、それをスキップします。 続け; tempList.add(NUMS [I])。 DFS(NUMS、tempList)。 tempList.remove(tempList.size() - 1 )。 } } }
参考:LeetCode話し合います
LeetCodeタイトルリスト- LeetCode質問一覧
トピック出典ます。https://leetcode.com/