#18 Subsets II
来源:互联网 发布:光伏功率优化器原理 编辑:程序博客网 时间:2024/06/06 04:14
题目描述:
Given a list of numbers that may has duplicate numbers, return all possible subsets
Notice
- Each element in a subset must be in non-descending order.
- The ordering between two subsets is free.
- The solution set must not contain duplicate subsets.
Example
题目思路:If S = [1,2,2]
, a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], []]
求subset的过程就是对每个element进行选择的过程。在array中遍历所有的element,对于每个element有两种option:选它加入subset,或者不选它。这题因为有重复元素,所以在我的code中先用set来存答案,这样做的好处是set可以查找得到的subset是不是已经在set中存在了,以此避免重复。
Mycode(AC = 38ms):
class Solution {public: /** * @param S: A set of numbers. * @return: A list of lists. All valid subsets. */ vector<vector<int> > subsetsWithDup(const vector<int> &S) { // write your code here vector<int> nums(S); vector<int> sofar; set<vector<int>> subsets; vector<vector<int>> ans; // sort S sort(nums.begin(), nums.end()); subsetsWithDup(subsets, sofar, nums, 0); // put the vector in set into vector for (auto it = subsets.begin(); it != subsets.end(); it++) { ans.push_back(*it); } return ans; } void subsetsWithDup(set<vector<int>>& subsets, vector<int>& sofar, vector<int>& nums, int idx) { if (idx >= nums.size()) { if (subsets.find(sofar) == subsets.end()) { subsets.insert(sofar); } return; } vector<int> tmp = sofar; // not pick nums[idx] subsetsWithDup(subsets, tmp, nums, idx + 1); // pick nums[idx] tmp.push_back(nums[idx]); subsetsWithDup(subsets, tmp, nums, idx + 1); return; }};
0 0
- #18 Subsets II
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- Subsets and Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- Subsets II
- poj 2728 最优比例生成树
- jS事件基础应用
- 自定义相关api探究:
- 经验之谈—KVC(forKey,forKeyPath)
- 开源中国iOS客户端v3.7.2发布
- #18 Subsets II
- 计算机组成原理笔记
- Glide缓存机制源码浅析
- 苹果被拒 IPV6适配
- Cookie 的使用
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 学习记录:mac 安装配置oh-my-zsh
- php api管理系统协同工作
- 利用fastcopy 定时同步目录