diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Backtracking-2.iml b/.idea/Backtracking-2.iml new file mode 100644 index 00000000..b107a2dd --- /dev/null +++ b/.idea/Backtracking-2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..919ce1f1 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..a55e7a17 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..639900d1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..96d9dd7d --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SubSets.java b/SubSets.java new file mode 100644 index 00000000..14f14efb --- /dev/null +++ b/SubSets.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; +import java.util.List; + +public class SubSets { + public List> subsets(int[] nums) { + List> result = new ArrayList<>(); + List currSet = new ArrayList<>(); + helper(nums, result, currSet, 0); + return result; + } + private void helper(int[] nums, List> result, List currSet, int idx){ + //base + if(idx == nums.length){ + result.add(new ArrayList<>(currSet)); + return; + } + //logic + //choose + currSet.add(nums[idx]); + helper(nums, result, currSet, idx+1); + currSet.remove(currSet.size()-1); + + //no choose + helper(nums, result, currSet, idx+1); + + } +}