https://leetcode-cn.com/probl...
简单的深度优先遍历。
尝试了 list 的 append 再 pop 和直接使用下标修改 list 的值。
看起来对结果影响很小。
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
ans = []
n = len(nums)
f = [False] * n
l = []
def dfs(i):
if i == n:
ans.append(l[::])
return
for j in range(n):
if not f[j]:
l.append(nums[j])
f[j] = True
dfs(i+1)
f[j] = False
l.pop()
dfs(0)
return ans
执行用时 :40 ms, 在所有Python3提交中击败了88.14%的用户
内存消耗 :13.1 MB, 在所有Python3提交中击败了59.71%的用户
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
ans = []
n = len(nums)
f = [False] * n
l = [0] * n
def dfs(i):
if i == n:
ans.append(l[::])
return
for j in range(n):
if not f[j]:
l[i] = nums[j]
f[j] = True
dfs(i+1)
f[j] = False
dfs(0)
return ans
执行用时 :40 ms, 在所有Python3提交中击败了88.14%的用户
内存消耗 :13.1 MB, 在所有Python3提交中击败了59.50%的用户
欢迎来我的博客: https://codeplot.top/
我的博客刷题分类:https://codeplot.top/categories/%E5%88%B7%E9%A2%98/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。