给定一个没有重复数字的序列,返回其所有可能的全排列。
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @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
};