Leetcode——46. 全排列
給定一個沒有重複數字的序列,返回其所有可能的全排列。
示例:
輸入: [1,2,3]
輸出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
思路:回溯方法,每次取一個prefix,剩下的繼續做permutation,然後連線起來加入res中
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
if len(nums) == 0:
return []
if len(nums) == 1:
return [nums]
res = []
for i in range(len(nums)):
prefix = nums[i] # 取出開頭的prefix
rest = nums[:i] + nums[i+1:] # 放入rest中
for j in self.permute(rest): # 回溯
res.append([prefix] + j)
return res
相關文章
- 【LeetCode】46. 全排列LeetCode
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- 程式碼隨想錄演算法訓練營day29 | leetcode 491. 非遞減子序列、46. 全排列、47. 全排列 II演算法LeetCode
- leetcode:全排列(java回溯)LeetCodeJava
- LeetCode系列46—全排列LeetCode
- LeetCode-046-全排列LeetCode
- LeetCode-047-全排列 IILeetCode
- LeetCode 45跳躍遊戲&46全排列LeetCode遊戲
- LeetCode46 回溯演算法求全排列,這次是真全排列LeetCode演算法
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- 字串全排列字串
- 字串的全排列字串
- 全排列演算法演算法
- Java實現-全排列Java
- 演算法——全排列演算法
- 【Algorithm】全排列演算法Go演算法
- JavaScript陣列元素全排列JavaScript陣列
- 字串全排列 java實現字串Java
- 下一個排列(LeetCode)LeetCode
- js陣列全排列問題JS陣列
- 有重複元素的全排列
- 全排列及相關擴充套件演算法(二)——求字典序下一組排列及全排列演算法套件演算法
- LeetCode-441-排列硬幣LeetCode
- LeetCode 567. 字串的排列LeetCode字串
- 遞迴解決全排列問題遞迴
- [演算法]全排列類問題演算法
- 實現自然數N的全排列
- 全排列價值(數學問題)
- LeetCode31.下一個排列LeetCode
- 從基礎講全排列(Java實現)Java
- 前端電商 sku 的全排列演算法前端演算法
- 【演算法】遞迴實現全排列演算法遞迴
- 全排列演算法的JS實現演算法JS
- [LeetCode] Next Permutation 下一個排列LeetCode
- 回溯法解決全排列問題總結
- Python語言的全排列怎麼提速?Python
- Java實現全排列、組合演算法Java演算法
- LeetCode每日一題: 排列硬幣(No.441)LeetCode每日一題