A**u 发帖数: 2458 | 1 career cup 上的题目
Write a method that returns all subsets of a set.
想请教一下,递归的怎么写呢
这是career cup的java写法,我不懂java,完全看不懂, 请大家给个算法思路
ArrayList> getSubsets(ArrayList set,
2 int index) {
3 ArrayList> allsubsets;
4 if (set.size() == index) {
5 allsubsets = new ArrayList>();
6 allsubsets.add(new ArrayList()); // Empty set
7 } else {
8 allsubsets = getSubsets(set, index + 1);
9 int item = set.get(index);
10 ArrayList> moresubsets =
11 new ArrayList>();
12 for (ArrayList subset : allsubsets) {
13 ArrayList newsubset = new ArrayList();
14 newsubset.addAll(subset); //
15 newsubset.add(item);
16 moresubsets.add(newsubset);
17 }
18 allsubsets.addAll(moresubsets);
19 }
20 return allsubsets;
21 } | C***U 发帖数: 2406 | 2 递归的话,我有一个想法。
假设你要加入第i+1个元素,你先找到前i个元素组成的子集(用到递归),然后再把i+1
加入到这些子集里面。就得到前i+1个元素组成的元素。
【在 A**u 的大作中提到】 : career cup 上的题目 : Write a method that returns all subsets of a set. : 想请教一下,递归的怎么写呢 : 这是career cup的java写法,我不懂java,完全看不懂, 请大家给个算法思路 : ArrayList> getSubsets(ArrayList set, : 2 int index) { : 3 ArrayList> allsubsets; : 4 if (set.size() == index) { : 5 allsubsets = new ArrayList>(); : 6 allsubsets.add(new ArrayList()); // Empty set
| A**u 发帖数: 2458 | 3 多谢
我再试试
1
【在 C***U 的大作中提到】 : 递归的话,我有一个想法。 : 假设你要加入第i+1个元素,你先找到前i个元素组成的子集(用到递归),然后再把i+1 : 加入到这些子集里面。就得到前i+1个元素组成的元素。
|
|