File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import java .util .ArrayList ;
2+ import java .util .List ;
3+
4+ /**
5+ * leetcode回溯法:子集
6+ * 该题比较难,回溯算法的精髓在于平行宇宙的概念(自创的)
7+ */
8+
9+ public class Subsets0078 {
10+
11+ public static void main (String [] args ) {
12+ int nums [] = {1 ,2 ,3 };
13+ subsets (nums );
14+ }
15+
16+ private static List <List <Integer >> result = new ArrayList <List <Integer >>();
17+
18+ public static List <List <Integer >> subsets (int [] nums ) {
19+
20+ List <Integer > tmp = new ArrayList <>();
21+ backtrack (nums , 0 , tmp );
22+ return result ;
23+ }
24+
25+ private static void backtrack (int [] nums , int start , List <Integer > tmp ) {
26+
27+ result .add (new ArrayList <>(tmp ));
28+
29+ for (int i = start ; i < nums .length ; i ++) {
30+ tmp .add (nums [i ]);
31+ backtrack (nums , i +1 , tmp );
32+ tmp .remove (tmp .size ()-1 );
33+ }
34+ for (int j : tmp ) {
35+ System .out .print (j + " " );
36+ }
37+ System .out .println ();
38+ }
39+ }
You can’t perform that action at this time.
0 commit comments