LeetCode: Subsets II
2013-04-21 12:51
337 查看
这题自己没想出来看了网上答案,才知道只要在上一题的基础上改用set而不用vector就可以了,set和vector的区别就在于set里没有重复元素,只要用set.insert(*), 会自动识别是否重复。set好牛逼。。
class Solution { public: void dfs(int cur, int n, set<vector<int>> &T, vector<int> &tmp, vector<int> S) { if (cur == n) { T.insert(tmp); return; } dfs(cur+1, n, T, tmp, S); tmp.push_back(S[cur]); dfs(cur+1, n, T, tmp, S); tmp.pop_back(); } vector<vector<int> > subsetsWithDup(vector<int> &S) { // Start typing your C/C++ solution below // DO NOT write int main() function sort(S.begin(), S.end()); set<vector<int>> T; vector<vector<int>> ret; if (!S.size()) return ret; vector<int> tmp; dfs(0, S.size(), T, tmp, S); for (set<vector<int>>::iterator it = T.begin(); it != T.end(); it++) ret.push_back(*it); return ret; } };
相关文章推荐
- Leetcode NO.90 Subsets II
- LeetCode--Subsets II
- leetcode:Subsets II
- leetcode_90题——Subsets II (递推)
- 【LeetCode】Subsets II
- LeetCode: Subsets II
- LeetCode-Subsets II
- [LeetCode] Subsets II
- 【Leetcode】Subsets II (Backtracking)
- LeetCode 90:Subsets II
- LeetCode – Refresh – Subsets II
- [LeetCode105]Subsets II
- leetcode: Subsets II
- LeetCode----Subsets II
- [Leetcode]Subsets II
- Subsets II -- LeetCode
- LeetCode --- 90. Subsets II
- LeetCode 90. Subsets II
- [LeetCode]—Subsets II 求数组子集(有重复值)
- Subsets II [leetcode] 从获取子集的递归和循环方法说起,解决重复子集的问题