2 条题解
-
0
题目描述
给定一个不含重复数字的整数数组
nums,返回其所有可能的全排列。你可以按任意顺序返回答案。思路分析
采用深度优先搜索(DFS)的暴力枚举方法。通过标记已使用的数字,每次从剩余未使用的数字中选择一个加入当前路径,递归处理直到路径长度等于数组长度,此时将路径记录为一个排列结果。
代码实现
def permute(nums): result = [] used = [False] * len(nums) def dfs(path): if len(path) == len(nums): result.append(path.copy()) return for i in range(len(nums)): if not used[i]: used[i] = True path.append(nums[i]) dfs(path) path.pop() used[i] = False dfs([]) return result
- 1
信息
- ID
- 690
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 17
- 已通过
- 3
- 上传者