1. 程式人生 > 其它 >leetcode46 全排列

leetcode46 全排列

技術標籤:演算法刷題

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