class Solution {
List<List<Integer>> answer = new ArrayList();
List<Integer> path = new ArrayList();
public List<List<Integer>> permute(int[] nums) {
if(nums.length==0) return answer;
boolean[] used = new boolean[nums.length];//需要used数组记录path里放了哪些元素
dfs(nums,used);
return answer;
}
public void dfs(int[] nums,boolean[] used){
if(path.size()==nums.length){
answer.add(new ArrayList(path));
return;
}
for(int i=0;i<nums.length;i++){
if(used[i]==true) continue;
used[i]=true;
path.add(nums[i]);
dfs(nums,used);
path.remove(path.size()-1);
used[i]=false;
}
}
}
全排列问题leetcode46
最新推荐文章于 2024-05-20 20:08:58 发布