PermutationsI II

来源:互联网 发布:mac粉底液怎么样 编辑:程序博客网 时间:2024/05/20 09:06

Permutations

Given a collection of distinct numbers, return all possible permutations.

For example,[1,2,3] have the following permutations:[  [1,2,3],  [1,3,2],  [2,1,3],  [2,3,1],  [3,1,2],  [3,2,1]]
public class Solution {    List<List<Integer>> res=new ArrayList<List<Integer>>();    List<Integer> cur = new ArrayList<Integer>;    public List<List<Integer>> permute(int[] nums) {        if(nums.length==0) return res;        boolean[] isUsed=new boolean[nums.length];        permuteHelper(nums,isUsed);        return res;    }    private void permuteHelper(int[] nums, boolean[] isUsed){        if(cur.size==nums.lenght){            res.add(cur);            return;        }        for(int i=0;i<nums.length;i++){            if(!isUsed[i]){                cur.add(nums[i]);                isUsed[i]=true;                permuteHelper(nums,isUsed);                isUsed[i]=false;                cur.remove(cur.size()-1);            }        }    }}


Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations.

For example,[1,1,2] have the following unique permutations:[  [1,1,2],  [1,2,1],  [2,1,1]]
public class Solution {    List<List<Integer>> res=new ArrayList<List<Integer>>();    List<Integer> cur = new ArrayList<Integer>();    public List<List<Integer>> permuteUnique(int[] nums) {        if(nums.length==0) return res;        Arrays.sort(nums);        permuteUniqueHelper(nums,new boolean[nums.length]);        return res;    }    private void permuteUniqueHelper(int[] nums,boolean[] used){        if(cur.size()==nums.lenght){            res.add(cur);            return;        }        for(int i=0;i<nums.length;i++){            if(i>0&&nums[i]==nums[i-1]&&!used[i-1]) continue;            if(!used[i]){                cur.add(nums[i]);                used[i]=true;                permuteUniqueHelper(nums,used);                used[i]=false;                cur.remove(cur.size()-1);            }        }    }}




0 0
原创粉丝点击