LeetCode -- Subsets II
来源:互联网 发布:sql server denty_rank 编辑:程序博客网 时间:2024/06/05 02:52
题目描述:
Given a collection of integers that might contain duplicates, nums, 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 nums = [1,2,2], a solution is:
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]
思路:
又是一道backtracking题目。
本题与Combination Sum极为类似。
需要注意去重,使用哈希来存升序key。
实现代码:
Given a collection of integers that might contain duplicates, nums, 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 nums = [1,2,2], a solution is:
[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]
思路:
又是一道backtracking题目。
本题与Combination Sum极为类似。
需要注意去重,使用哈希来存升序key。
实现代码:
public class Solution { public IList<IList<int>> SubsetsWithDup(int[] nums) { Dictionary<string, IList<int>> result = new Dictionary<string, IList<int>>(); Travel(nums.ToList() ,new List<int>(), 0, result); return result.Values.ToList(); }private void Travel(IList<int> nums, IList<int> arr, int index, Dictionary<string , IList<int>> result){var k = K(ref arr);if(!result.ContainsKey(k)){result.Add(k, new List<int>(arr));}for(var i = index ;i < nums.Count; i++){arr.Add(nums[i]);Travel(nums, arr, i + 1, result);arr.Remove(nums[i]);}}private string K(ref IList<int> arr){arr = arr.OrderBy(x=>x).ToList();return string.Join(",", arr);}}
1 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- [LeetCode] Combinations、Subsets、Subsets II
- 【Leetcode】【python】Subsets/Subsets II
- LeetCode: Subsets II
- LeetCode SubSets II
- LeetCode: Subsets II
- leetcode 48: Subsets II
- [LeetCode] Subsets II
- [Leetcode] Subsets II
- [leetcode] Subsets II
- leetcode Subsets II
- leetcode Subsets II problem
- [LeetCode]Subsets II
- [leetcode]Subsets II
- LeetCode -- Single Number III
- java环境配置
- Caffe Install again and again
- iOS 开发相关
- 题记——千里杀一人
- LeetCode -- Subsets II
- 使用Scanner获取键盘输入
- cocos2d-x-v3安卓平台tinyxml2读取xml出错
- 关于垂直切分Vertical Sharding的粒度
- 织梦dedecms后台增加多媒体后缀上传无法选择原因
- xUtils框架
- Java笔记001---基础
- 【loadrunner】性能测试自动执行-具体配置步骤
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)