132 - 46 全排列

题目

给定一个没有重复数字的序列,返回其所有可能的全排列。

示例:

输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]

解答

感觉可以用递归做。。

python库

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        return list(itertools.permutations(nums))

Runtime: 36 ms, faster than 99.74% of Python3 online submissions for Permutations.

Memory Usage: 13.9 MB, less than 5.36% of Python3 online submissions for Permutations.

回溯算法

https://leetcode-cn.com/problems/permutations/solution/hui-su-suan-fa-python-dai-ma-java-dai-ma-by-liweiw/

第一反应就是,一个个摁住数字,然后排序。回溯算法也这样

46-1.png

就是对这个树进行深度优先遍历。

Runtime: 44 ms, faster than 91.26% of Python3 online submissions for Permutations.

Memory Usage: 13.8 MB, less than 5.36% of Python3 online submissions for Permutations.

Runtime: 72 ms, faster than 45.94% of JavaScript online submissions for Permutations.

Memory Usage: 36.4 MB, less than 48.00% of JavaScript online submissions for Permutations.

https://leetcode.com/problems/permutations/discuss/312267/go%3A-backtrack

Runtime: 4 ms, faster than 92.03% of Go online submissions for Permutations.

Memory Usage: 7 MB, less than 100.00% of Go online submissions for Permutations.

递归

https://leetcode.com/problems/permutations/discuss/277169/my-go-solution-backtracking

Runtime: 4 ms, faster than 92.03% of Go online submissions for Permutations.

Memory Usage: 7 MB, less than 100.00% of Go online submissions for Permutations.

Runtime: 68 ms, faster than 68.65% of JavaScript online submissions for Permutations.

Memory Usage: 36.8 MB, less than 24.00% of JavaScript online submissions for Permutations.

Last updated

Was this helpful?