5/30/2014

66. Subsets II

public class Solution {
    public ArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
        HashSet<ArrayList<Integer>> set = new HashSet<ArrayList<Integer>> ();
        Arrays.sort(num);
        int length = num.length;
       
        for (int i=0; i<Math.pow(2, length); i++) {
            ArrayList<Integer> temp = new ArrayList<Integer> ();
            int t = i;
           
            for (int j=0; j<length; j++) {
                int bit = t&1;
                if (bit==1) temp.add(num[j]);
                t = t>>1;
            }
            set.add(temp);
        }
       
        return new ArrayList<ArrayList<Integer>> (set);
    }
}

没有评论:

发表评论