leetcode46 全排列
阿新 • • 發佈:2021-01-12
技術標籤:演算法刷題
leetcode46 全排列
標準排列樹,當然也可以用分治做,本質都是一樣的。
程式碼:
class Solution {
ArrayList<Integer> res = new ArrayList();
List<List<Integer>> ans = new ArrayList();
void swap(int[] nums, int a,int b){
int tmp = nums[a];
nums[a] = nums[b];
nums[b] = tmp;
return ;
}
void trackBack(int[] nums,int pos){
if(pos == nums.length){
ans.add((ArrayList<Integer>) res.clone());
}else{
for(int i = pos;i < nums.length;i++){
res.add(nums[i]);
swap(nums, pos, i);
trackBack(nums, pos+1);
res.remove(res.size()-1);
swap(nums, pos, i);
}
}
}
public List<List<Integer>> permute(int[] nums) {
trackBack(nums, 0);
return ans;
}
}
1ms 38.6MB