20201130-C語言-結構體
阿新 • • 發佈:2020-12-17
題目:給定一個沒有重複數字的序列,返回其所有可能的全排列。
示例:
輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
程式碼:
classSolution{ publicList<List<Integer>>permute(int[]nums){ varlist=newArrayList<List<Integer>>(); vararr=newArrayList<Integer>(); backTrack(0,nums,arr,list); returnlist; }publicstaticvoidbackTrack(intt,int[]nums,ArrayList<Integer>arr,ArrayList<List<Integer>>list){ if(t>=nums.length){ vartemp=newArrayList<Integer>(arr); list.add(temp);} else{ for(inti=t;i<nums.length;i++){ swap(nums,t,i); arr.add(nums[t]); backTrack(t+1,nums,arr,list); arr.remove(arr.size()-1); swap(nums,t,i); } } } publicstaticvoidswap(int[]nums,inti,intj){ inttemp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } }