回溯集合
1. Subsets
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
Arrays.sort(nums);
backtrack(res, new ArrayList<>(), nums, 0);
return res;
}
private void backtrack (List<List<Integer>> list,
List<Integer> track, int[] nums, int start) {
list.add(new ArrayList<>(track));
for (int i = start; i < nums.length; i++) {
track.add(nums[i]);
backtrack(list, track, nums, i + 1);
track.remove(track.size() - 1);
}
}2. Subsets II (contains duplicates)
3. Permutations
4. Permutations II (contains duplicates)
5. Combination Sum
6. Combination Sum II (can't reuse same element)
7. Palindrome Partitioning
最后更新于
这有帮助吗?