首页 > 代码库 > CC150 8.3
CC150 8.3
8.3 Write a method that returns all subsets of a set.
powerSet(i) = [powerSet(i - 1)] * ITEMi + // Add new item into each existing set [pwerSet(i - 1)] + // Existing set ITEMi // single new item. powerSet(1) = ITEM1. <T> Set<Set<T>> powerSet(Set<T> set) { if (set == null || set.isEmpty()) return Collections.emptyList(); Set<Set<T>> toReturn = Sets.new(); T t = set.removeFirstElement(); Set<Set<T>> smallResults = powerSet(set); toReturn.addAll(smallResults); for (Set<T> s : smallResults) { Set<T> withI = Sets.copy(s).add(t); toReturn.add(withI); } toReturn.add(Sets.of(t)); // Add empty one in outer method. // if needed. toReturn.add(Sets.empty()); return toReturn; }
CC150 8.3
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。