Skip to content

Instantly share code, notes, and snippets.

@leearmee35
Created August 30, 2016 17:35
Show Gist options
  • Save leearmee35/4841ffd776023e5978851df382e89bc1 to your computer and use it in GitHub Desktop.
Save leearmee35/4841ffd776023e5978851df382e89bc1 to your computer and use it in GitHub Desktop.
public class Solution {
private ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
private HashMap hm = new HashMap();
public List<List<Integer>> permuteUnique(int[] nums) {
ArrayList<Integer> set = new ArrayList<Integer>();
boolean [] vis = new boolean[nums.length];
helper(nums,set,vis);
return (List) res;
}
public void helper(int[] nums, ArrayList<Integer> set, boolean[] visited){
if(set.size()==nums.length){
ArrayList a = new ArrayList<Integer>(set);
if(hm.get(a)==null){
hm.put(a,1);
res.add(a);
}
return;
}
for(int i=0;i<nums.length;i++){
if(visited[i]==false){
set.add(nums[i]);
visited[i]=true;
helper(nums, set, visited);
set.remove(set.size()-1);
visited[i]=false;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment