class{ public List<List<Integer>> subsetsWithDup(int[] nums) { HashSet<List<Integer>> hs = new HashSet<>(); int len = nums.length; int x = (int) (Math.pow(2, len)); for (int i = 0; i < x; i++) { List<Integer> tmp = new ArrayList<>(); for (int j = i, k = 0; j >= 1; j = j / 2, k++) { if (j % 2 != 0) { tmp.add(nums[k]); } } Collections.sort(tmp); if (!hs.contains(tmp)) { hs.add(tmp); } } List<List<Integer>> res = new ArrayList<>(); for (List<Integer> item : hs) { res.add(item); } return res; } }
近期评论