给定一个没有重复数字的序列,返回其所有可能的全排列。
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型二维数组 # import copy class Solution: res = [] def permute(self , nums ): # write code here track = [] self.backtrack(nums, track) return self.res def backtrack(self, nums, track): if len(track) == len(nums): self.res.append(copy.deepcopy(track)) return for i in range(len(nums)): if nums[i] in track: continue # 做选择 track.append(nums[i]) # 进入下一层决策树 self.backtrack(nums, track) # 取消选择 track.pop()
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ function permute( nums ) { // write code here var res=[]; var used=[]; var arr=[]; dfs(); return res; function dfs(){ if(arr.length===nums.length){ res.push([...arr]); return; } for(let i=0;i<nums.length;i++){ if(used[i])continue; arr.push(nums[i]); used[i]=true; dfs(); arr.pop(); used[i]=false; } } } module.exports = { permute : permute };
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ function permute( nums ) { // write code here if(!nums) return []; let res = []; backtrack(nums, res, [], 0); function backtrack(nums, res, path, startIndex){ if(path.length === nums.length){ res.push([...path]); return; }else{ for(let i = 0; i < nums.length; i++){ if(path.includes(nums[i])) continue; path.push(nums[i]); backtrack(nums, res, path, startIndex + 1); path.pop(); } } } return res; } module.exports = { permute : permute };
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ function List(output,nums,level,path,used){ if(level == nums.length ) { output.push(path.slice(0)); return ; } for(let x in nums){ if(used[x] != true){ used[x] = true; path.push(nums[x]); List(output,nums,level+1,path,used); path.pop(); used[x] = false; } } } function permute( nums ) { // write code here if (nums.length==0) return []; let level = 0; let path = []; let used = []; let output = []; List(output,nums,0,path,used); return output; } module.exports = { permute : permute };