A general approcach to backtracking questions in Java
This structure might apply to many other backtracking questions,here are just some examples to demonstrate Subsets, Permutations, and Combination Sum.
Subsets:https://leetcode.com/problems/subsets/
1 | public List<List<Integer>> subsets(int[] nums) { |
Subsets II(contains duplicates): https://leetcode.com/problems/subsets-ii/
1 | public List<List<Integer>> subsetsWithDup(int[] nums) { |
Permutations: https://leetcode.com/problems/permutations/
1 | public List<List<Integer>> permute(int[] nums) { |
Permutations II(contains duplicates):https://leetcode.com/problems/permutations-ii/
1 | public List<List<Integer>> permuteUnique(int[] nums) { |
Combination Sum:https://leetcode.com/problems/combination-sum/
1 | public List<List<Integer>> combinationSum(int[] nums, int target) { |
Combination Sum II(can’t reuse same element):https://leetcode.com/problems/combination-sum-ii/
1 | public List<List<Integer>> combinationSum2(int[] nums, int target) { |
Palindrome Partitioning:https://leetcode.com/problems/palindrome-partitioning/
1 | public List<List<String>> partition(String s) { |