日々の問題--- LeetCode(46)の完全な配列

件名の説明:

与えられた数字の配列は、完全な順列にすべての可能なリターンを繰り返されていません。
入力:[1,2,3]
出力

[ [1,2,3]、
[1,3,2]、
[2,1,3]、
[2,3,1]、
[3,1,2 ]
[3,2,1]
]

 

インポートitertoolsの
 クラスソリューション:
     DEF 並び替える(自己、NUMS):
        RES = []
         DEF :(NUMS、TMP)後戻り
             なら ないNUMS:
                res.append(TMP)
                のリターン 
            のための I における範囲(LEN(NUMS)):
                バックトラック(NUMSを【:I] + NUMS [I + 1]、TMP + [NUMS [I])
        バックトラック(NUMS、[])
        を返すRES
     DEF permute2(自己、NUMS):
         戻りリスト(itertools.permutations(NUMS))

LeetCode(47)全アレイ2

説明タイトル:
数列を考えるには、繰り返しが含まれるすべての明確な完全な配列を返すことがあります。
入力:[1,1,2]
出力

[ [1,1,2]、
[1,2,1]、
[2,1,1]
]

クラスソリューション:
     DEF permuteUnique(自己、NUMS):
        RES = []
         DEF :(NUMS、TMP)後戻り
             なら ないNUMS:
                res.append(TMP)
                のリターン 
            のための I における範囲(LEN(NUMS)):
                バックトラック(NUMSを[: I] + NUMS [I + 1]、TMP + [NUMS [I])
        バックトラック(NUMS、[])
        new_res = []
         のためのデータRES:
             もしデータではない :new_res 
                new_res.append(データ)
        リターン new_res

 

おすすめ

転載: www.cnblogs.com/fighting25/p/11494667.html