diff --git a/SubSets/step1.md b/SubSets/step1.md new file mode 100644 index 0000000..e69de29 diff --git a/SubSets/step2.md b/SubSets/step2.md new file mode 100644 index 0000000..4fe8c62 --- /dev/null +++ b/SubSets/step2.md @@ -0,0 +1,19 @@ +```java +// Time spend: 02:01 +class Solution { + public List> subsets(int[] nums) { + List> res = new ArrayList<>(); + backtrack(res, new ArrayList<>(), nums, 0); + return res; + } + + private void backtrack(List> res, List tempList, int[] nums, int start) { + res.add(new ArrayList<>(tempList)); + for (int i = start; i < nums.length; i++) { + tempList.add(nums[i]); + backtrack(res, tempList, nums, i + 1); + tempList.remove(tempList.size() - 1); + } + } +} +``` \ No newline at end of file diff --git a/SubSets/step3.md b/SubSets/step3.md new file mode 100644 index 0000000..e5a3d8b --- /dev/null +++ b/SubSets/step3.md @@ -0,0 +1,59 @@ +```java +// Time spend: 01:41 +class Solution { + public List> subsets(int[] nums) { + List> res = new ArrayList<>(); + backtrack(res, new ArrayList<>(), nums, 0); + return res; + } + + private void backtrack(List> res, List tempList, int[] nums, int start) { + res.add(new ArrayList<>(tempList)); + for (int i = start; i < nums.length; i++) { + tempList.add(nums[i]); + backtrack(res, tempList, nums, i + 1); + tempList.remove(tempList.size() - 1); + } + } +} +``` + +```java +// Time spend: 01:51 +class Solution { + public List> subsets(int[] nums) { + List> res = new ArrayList<>(); + backtrack(res, new ArrayList<>(), nums, 0); + return res; + } + + private void backtrack(List> res, List tempList, int[] nums, int start) { + res.add(new ArrayList<>(tempList)); + for (int i = start; i < nums.length; i++) { + tempList.add(nums[i]); + backtrack(res, tempList, nums, i + 1); + tempList.remove(tempList.size() - 1); + } + } +} +``` + +```java +// Time spend: 01:23 +class Solution { + public List> subsets(int[] nums) { + List> res = new ArrayList<>(); + backtrack(res, new ArrayList<>(), nums, 0); + return res; + } + + private void backtrack(List> res, List tempList, int[] nums, int start) { + res.add(new ArrayList<>(tempList)); + for (int i = start; i < nums.length; i++) { + tempList.add(nums[i]); + backtrack(res, tempList, nums, i + 1); + tempList.remove(tempList.size() - 1); + } + } +} +``` \ No newline at end of file