1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| import java.util.ArrayList;
/**
* DFS求数组的全部子集
*/
public class Try001 {
//a为原数组,b为子集,n计数
public static void dfs(ArrayList<Integer> a, ArrayList<Integer> b, int n){
if(n == a.size()) { //终止条件
//输出子集的值,空行代表空集
for (Integer integer : b)
System.out.print(integer + " ");
System.out.println();//换行
return;
}
//选择添加
b.add(a.get(n));
dfs(a,b,n+1);
//不选择添加
b.remove(a.get(n));
dfs(a,b,n+1);
}
public static void main(String[] args) {
ArrayList<Integer> a = new ArrayList<>();
ArrayList<Integer> b = new ArrayList<>();
for(int i = 1; i <= 3; i++){
a.add(i);//初始化集合
}
dfs(a, b, 0);
}
}
|