题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param num int整型一维数组
# @return int整型二维数组
#
#
#
# @param num int整型一维数组
# @return int整型二维数组
#
class Solution:
def permute(self, num: list[int]) -> list[list[int]]:
# write code here
ans = []
length = len(num)
#visited数组中的False表明没有被访问过,如果被访问过就不能访问直接访问下一个元素
visited = [False for i in range(length)]
#L用于统计元素,当达到元素的深度时,不再往下进行递归,进行回溯
L = []
def traversal(num, visited, L):
if len(L) == length:
ans.append(L.copy())
return
for i in range(length):
if visited[i]:
continue
else:
L.append(num[i])
visited[i] = True
traversal(num, visited, L)
L.remove(L[-1])
visited[i] = False
traversal(num, visited, L)
return ans
