【Leetcode】之Subset II
来源:互联网 发布:网络大电影演员收入 编辑:程序博客网 时间:2024/05/01 07:03
一.问题描述
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], []]
二.我的解题思路
拿到这个题目,最直观的思路就是使用回溯法遍历,然后使用map或者set这样的结构来去除重复。先排序,采用回溯法(子集树+map)的结果如下:
class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& nums) { int len=nums.size(); sort(nums.begin(),nums.end()); vector<int> curr; set<vector<int>> res; map<vector<int>,int> flag; int i=0; gen_res(nums,curr,res,flag,i); vector<vector<int>> ans; set<vector<int>>::iterator it=res.begin(); for(;it!=res.end();it++) ans.push_back(*it); return ans; } void gen_res(vector<int>& nums, vector<int>& curr,set<vector<int>>& res,map<vector<int>,int>& flag, int i ){ int len=nums.size(); if(i>=len){ res.insert(curr); // flag[curr]=1; return; } curr.push_back(nums[i]); gen_res(nums,curr,res,flag,i+1); curr.pop_back(); gen_res(nums,curr,res,flag,i+1); } };
0 0
- 【Leetcode】之Subset II
- leetcode之subset II
- Leetcode Subset I & II
- LeetCode(90)Subset II
- LeetCode 练习: Subset ii
- 【leetcode】 subset I、II
- Subset II [Leetcode 解题报告]
- LeetCode 90.Subset II java solution
- subset II
- leetcode Subset
- leetcode subset ||
- leetcode subset
- Subset I & II
- leetcode之Permutations II
- LeetCode之Subsets II
- leetcode之Subsets II
- 【Leetcode】之Permutations II
- LeetCode(78)Subset
- 数据输入流与数据输出流
- [leetcode] 319.Bulb Switcher
- 图像的傅里叶变换
- (10)HTML标签详解之<link />
- Android 圆形ImageView
- 【Leetcode】之Subset II
- Android插件化(使用Small框架)
- ipc--消息队列
- Unity解析Txt文本
- studio编译.SO和使用
- netty对http协议解析原理(一)
- 深入Android MediaPlayer的使用方法详解
- WordPress 取消上传2M限制
- 57.Automatic Shared Memory Management is disabled for your database instance. You realize that there