From c8f22deef1f6bea36e7ca2b529cbc26f66d1bda5 Mon Sep 17 00:00:00 2001 From: linlihong <747682928@qq.com> Date: Mon, 9 Sep 2024 17:09:39 +0800 Subject: [PATCH] =?UTF-8?q?2024/9/9=20Hot100=20=E5=9B=9E=E6=BA=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/hot100/backtracking/Num46.java | 49 +++++++++++++++++++ .../com/cool/hot100/backtracking/Num78.java | 38 ++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/com/cool/hot100/backtracking/Num46.java create mode 100644 src/main/java/com/cool/hot100/backtracking/Num78.java diff --git a/src/main/java/com/cool/hot100/backtracking/Num46.java b/src/main/java/com/cool/hot100/backtracking/Num46.java new file mode 100644 index 0000000..cf3a86b --- /dev/null +++ b/src/main/java/com/cool/hot100/backtracking/Num46.java @@ -0,0 +1,49 @@ +package com.cool.hot100.backtracking; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/09/09/14:39 + * DayNumber 2 + * Hard 2 + * Level ? + */ +public class Num46 { + + + List> resList = new ArrayList<>(); + List list = new ArrayList<>(); + + public List> permute(int[] nums) { + for (int num : nums) { + list.add(num); + } + dfs(0); + return resList; + } + + private void dfs(int x) { + if (x == list.size() - 1) { + resList.add(new ArrayList<>(list)); + return; + } + for (int i = x; i < list.size(); i++) { + swap(i, x); + dfs(x + 1); + swap(i, x); + } + } + + private void swap(int x, int y) { + int temp = list.get(x); + list.set(x, list.get(y)); + list.set(y, temp); + } + +} diff --git a/src/main/java/com/cool/hot100/backtracking/Num78.java b/src/main/java/com/cool/hot100/backtracking/Num78.java new file mode 100644 index 0000000..4f15e30 --- /dev/null +++ b/src/main/java/com/cool/hot100/backtracking/Num78.java @@ -0,0 +1,38 @@ +package com.cool.hot100.backtracking; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/09/09/16:57 + * DayNumber 3 + * Hard 2 + * Level ? + */ +public class Num78 { + + List> resList = new ArrayList<>(); + List list = new ArrayList<>(); + + public List> subsets(int[] nums) { + dfs(nums, 0); + return resList; + } + + private void dfs(int[] nums, int index) { + resList.add(new ArrayList<>(list)); + if (index >= nums.length) { + return; + } + for (int i = index; i < nums.length; i++) { + list.add(nums[i]); + dfs(nums, i+1); + list.remove(list.size() - 1); + } + + } + +}