90. Subsets II
来源:互联网 发布:c语言不同数据类型运算 编辑:程序博客网 时间:2024/06/07 07:40
题目
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,2], a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], []]
代码
不含重复元素的解法:
http://blog.csdn.net/daigualu/article/details/76348947
与解决不含重复元素的子集思路一致,只有两处不同:
1. 需要对数组排序
2. 过滤重复项
public class Solution { private IList<IList<int>> rtn = new List<IList<int>>(); public IList<IList<int>> SubsetsWithDup(int[] nums) { Array.Sort(nums); //diff1: in-place sort rtn.Add(new List<int>()); rtn.Add(new List<int>(nums)); dfs2(nums, new List<int>(), 0, 1); //call dfs return rtn; } //assert: ndigts>=1 //dfs: two recursion return conditions for dfs : //1. size for an item of this subsets increases to ndigits //2. depth-first-search for nums[i] with ndigits is to the end point. private void dfs2(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++) { //diff2: filter duplicates if (i > start && nums[i] == nums[i - 1]) continue; item.Add(nums[i]); dfs2(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 && 90. Subsets II
- 78. Subsets 90. Subsets II
- 78. Subsets &90. Subsets II
- 78. Subsets,90. Subsets II
- 78. Subsets && 90. Subsets II
- 78. Subsets 90. Subsets II
- 78. Subsets & 90. Subsets II
- 90. Subsets II
- [LeetCode]90.Subsets II
- [Leetcode] 90. Subsets II
- LeetCode --- 90. Subsets II
- 90. Subsets II
- [leetcode] 90.Subsets II
- 【leetcode】90. Subsets II
- Leetcode 90. Subsets II
- 90. Subsets II
- 90. Subsets II LeetCode
- leetcode 90. Subsets II
- 奇偶剪枝
- HDFS的java操作
- 端口分类调研
- Python 装饰器
- 001_JavaScript简介
- 90. Subsets II
- 倍增LCA模板
- solrJ的使用
- COJ1973-给自己出题的小X
- windows注册表文件损坏了,导致windows无法启动,解决办法!
- sqlserver通用类库
- 写了一个Xcode的小demo遇到了一些问题
- 自我介绍小故事
- A simple math problem【打表找规律】