题目:子集
来源:互联网 发布:乐知英语待遇 编辑:程序博客网 时间:2024/04/25 11:27
给定一个含不同整数的集合,返回其所有的子集
您在真实的面试中是否遇到过这个题?
Yes
样例
如果 S = [1,2,3],有如下的解:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
注意
子集中的元素排列必须是非降序的,解集必须不包含重复的子集
标签 Expand
解题思路:
使用DFS深度搜索加递归。
由于数组中的数据只有2种选择,要或者不要。
先排序,然后DFS加递归
class Solution { /** * @param S: A set of numbers. * @return: A list of lists. All valid subsets. */ public ArrayList<ArrayList<Integer>> subsets(ArrayList<Integer> S) { // write your code here ArrayList<ArrayList<Integer>> res = new ArrayList<>(); if(null==S||0==S.size()) return res; Collections.sort(S); ArrayList<Integer> tmp = new ArrayList<Integer>(); DFSsubsets(S,0, res, tmp); return res; } public void DFSsubsets(ArrayList<Integer> S, int n,ArrayList<ArrayList<Integer>> res,ArrayList<Integer> tmp){ if(n==S.size()){ res.add((ArrayList<Integer>) tmp.clone()); return; } //不要该数字 DFSsubsets(S, n+1, res, tmp); //要该数字 tmp.add(S.get(n)); DFSsubsets(S, n+1, res, tmp); tmp.remove(tmp.size()-1); } }
0 0
- 题目:子集
- 【原创题目】lym子集
- 子集生成问题-一道笔试题目
- 题目:带重复元素的子集
- 回溯题目/排列、组合、子集问题
- 子集
- 子集
- 子集
- 子集
- 子集
- 蓝桥杯未解决题目之等和的分隔子集
- 离散题目8——位集描述子集
- 离散题目3 A是否为B的子集
- 离散题目3(判断是否为子集)
- poj 1192 最优连通子集(树形dp)题目好难懂。。。
- SDUT 离散题目3 判断一个集合是另一个集合的子集
- 子集和数
- 元素子集
- *LeetCode-Combination Sum
- 解决axis2处理java.util.Date类型对象时丢弃时间部分的问题
- JSON与XML的区别比较
- ViewPager的使用简单记录
- 使用gitk的时候中文显示乱码的问题
- 题目:子集
- hihocoder 1228 大模拟
- 【Android开发进阶】Android屏幕适配全攻略(最权威的官方适配指导)
- 题目:字符大小写排序
- 动态代理深入分析一
- 显示shell结果的头部几行
- 【逻辑训练】来自可汗学院的有趣逻辑问题
- onunload、onbeforeunload事件兼容问题详解
- 动态代理深入分析二