1. 程式人生 > 其它 >20201130-C語言-結構體

20201130-C語言-結構體

題目:給定一個沒有重複數字的序列,返回其所有可能的全排列。

示例:

輸入: [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; } }