全排列(不含重复元素)
套用模板,很好解决!!!!
class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> res= new ArrayList<>(); dfs(nums,0,res); return res; } void dfs(int[]nums,int cur,List<List<Integer>> res){ if(cur==nums.length){ // 所有的操作都在这里进行解决!!!!! ArrayList<Integer> ls=new ArrayList<Integer>(); for(int j=0;j<nums.length;j++){ ls.add(nums[j]); } res.add(ls); } for(int i=cur;i<nums.length;i++){ swap(nums,i,cur); dfs(nums,cur+1,res); swap(nums,i,cur); } } void swap(int[]nums,int a,int b){ int temp=nums[a]; nums[a]=nums[b]; nums[b]=temp; } }
也许会有遗憾,但是不应该在失败之前
浙公网安备 33010602011771号