您的位置:首页 > 其它

leetcode Permutations

2015-10-14 19:48 260 查看
题目链接

思路:

递归回溯。典型应用

public class Solution {
int n;
List<List<Integer>>  result;
List<Integer> temp;
boolean  isUsed[];
int[]nums;

public List<List<Integer>> permute(int[] nums) {
n=nums.length;
isUsed=new boolean
;
temp=new LinkedList<Integer>();
result=new LinkedList<List<Integer>>();
this.nums=nums;
help(0);
return result;
}

public void help(int step)
{
if(step==n)
{
result.add(new LinkedList<Integer>(temp));
return;
}

for(int i= 0;i<n;i++)
{
if(!isUsed[i])
{
isUsed[i]=true;
temp.add(nums[i]);
help(step+1);
isUsed[i]=false;
temp.remove(temp.size()-1);
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: