leetcode 46. Permutations

    技术2025-10-25  12

    Permutations class Solution { public List<List<Integer>> permute(int[] nums) { int n = nums.length; List<List<Integer>> ll = new ArrayList<List<Integer>>(); List<Integer> l = new ArrayList<Integer>(); doPermuteRecursively(nums, 0, n,ll,l); return ll; } public void swap(int[] nums, int i, int j){ int tmp=nums[j]; nums[j]=nums[i]; nums[i]=tmp; } public void doPermuteRecursively(int[] nums, int begin, int n,List<List<Integer>> ll, List<Integer> l){ if(n-begin==1){ l.add(nums[begin]); List<Integer> d = new ArrayList(n); Collections.addAll(d, new Integer[l.size()]); Collections.copy(d, l); ll.add(d); l.remove(begin); } for(int i=begin;i<n;i++){ swap(nums,begin,i); l.add(nums[begin]); doPermuteRecursively(nums, begin+1,n,ll,l); swap(nums,begin,i); l.remove(begin); } } }
    Processed: 0.009, SQL: 9