Leetcode: Subsets
来源:互联网 发布:ubuntu 任务栏 不显示 编辑:程序博客网 时间:2024/05/11 17:44
Problem:
Given a set of distinct integers, S, return all possible subsets.
Note:
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
For example,
If S = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]
Solution:
DFS.
Analysis: Reference from http://www.cnblogs.com/springfor/p/3879830.html
"The mathematical definition of a set ensures the uniqueness of its elements. For a set of cardinality n, the number of its subsets is 2^n. A DFS will traverse every one of them. During each recursion, you can either choose this element or not, resulting in two recursive path."
code:
public class Solution { ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); public ArrayList<ArrayList<Integer>> subsets(int[] S) { if (S == null || S.length == 0) { ArrayList<Integer> tmp = new ArrayList<Integer>(); result.add(tmp); return result; } Arrays.sort(S); dfs(0,0,S.length,new ArrayList<Integer>(), S); result.add(new ArrayList<Integer>()); return result; } public void dfs(int start, int level, int length, ArrayList<Integer> list, int[] S) { if (start == length) return; if (level >= length) { return; } for (int i = start; i < length; i++) { list.add(S[i]); ArrayList<Integer> tmp = new ArrayList<Integer>(list); result.add(tmp); dfs(i + 1, level + 1, length, list, S); list.remove(list.size() - 1); } }}
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- LeetCode: Subsets
- LeetCode Subsets
- [Leetcode] Subsets
- LeetCode : Subsets
- [LeetCode] Subsets
- Leetcode: Subsets
- Leetcode: Subsets ||
- [leetcode] subsets
- Leetcode - Subsets
- [LeetCode]Subsets
- LeetCode-Subsets
- LeetCode - Subsets
- LeetCode | Subsets
- iOS面试题
- 简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据
- BUILD FAILED D:\build.xml:2: 前言中不允许有内容。
- css 中需要注意学习的地方
- Ruby 操作数据库,CSV文件和txt文件
- Leetcode: Subsets
- ASP实现在WEB中显示电子表格数据 显示数据及生成HTML表格
- sql*plus
- LinQ实现DataTable不定行转列 行列转换
- DataTable与Linq相互转换方法
- Android之Adapter用法总结
- MATLAB和MFC混编
- [Leetcode] 24. Swap Nodes in Pairs
- 超级实用且不花哨的js代码大全