78. Subsets
来源:互联网 发布:软件风险分析 编辑:程序博客网 时间:2024/05/18 02:41
题目
求所有子集项
Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]
思路
深度搜索
代码
public class Solution { private IList<IList<int>> rtn = new List<IList<int>>(); public IList<IList<int>> Subsets(int[] nums) { rtn.Add(new List<int>()); rtn.Add(new List<int>(nums)); dfs(nums, new List<int>(), 0, 1); //call dfs return rtn; } //assert: ndigts>=1 //dfs: two return conditions for dfs recursion: //1. size for an item of this subsets increases to ndigits //2. depth-first-search for nums[i] with ndigits is NOT to the end point. private void dfs(int[] nums, IList<int> item, int start, int ndigts) { if (ndigts == item.Count) { rtn.Add(new List<int>(item)); return; //dfs recursion return condition 1 } while (ndigts < nums.Length) { for (int i = start; i < nums.Length; i++) { item.Add(nums[i]); dfs(nums, item, i + 1, ndigts); //forward 1 to search item.RemoveAt(item.Count - 1); } if (item.Count == 0) ndigts++; else //dfs recursion return condition 2 return; } } }
阅读全文
2 0
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- 78. Subsets
- svn过滤掉指定Source
- 数据库空表也能查询到一条数据
- 在服务器开启pathinfo
- Funny Function(HDU 6050)
- 问题 H: 循环左移
- 78. Subsets
- 7种回归分析方法
- xLua增加第三方lua库lpack
- Android中AutoLayout的使用
- 1157: 连续的n个1
- (十六)Bitmap的加载和Cache
- Firefox GeckoDriver不支持鼠标悬停
- 新装谷歌浏览器拦截Flash插件解决方案
- 面向对象设计原则