题解 | #没有重复项数字的全排列#
没有重复项数字的全排列
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