件名の説明:
与えられた数字の配列は、完全な順列にすべての可能なリターンを繰り返されていません。
入力:[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