[LeetCode] 90. Subsets II
2017-02-26 00:50
483 查看
[LeetCode] 90. Subsets II
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],
[]
]
与Subsets不同的是,有重复元素。
那就更换判断条件,push之前判断是否跟前一元素一样,一样就跳过,因为已经push过了。
class Solution { public: void getOneComb(vector<vector<int>>& ans, vector<int>& nums, int begin, int end, int k, vector<int>& res) { if (res.size() == k) { ans.push_back(res); return; } for (int i=begin; i<end; ++i) { if (i > begin && nums[i] == nums[i-1]) continue; res.push_back(nums[i]); getOneComb(ans, nums, i+1, end, k, res); res.pop_back(); } } vector<vector<int>> subsetsWithDup(vector<int>& nums) { sort(nums.begin(), nums.end()); vector<int> res; vector<vector<int>> ans; int begin = 0; int end = nums.size(); int k=end; for (int i=0; i<=k; ++i) { getOneComb(ans, nums, begin, end, i, res); } return ans; } };
相关文章推荐
- Leetcode: 90. Subsets II
- LeetCode 90. Subsets II
- LeetCode90 Subsets II
- LeetCode 90. Subsets II
- 【一天一道LeetCode】#90. Subsets II
- leetcode(90):Subsets II
- leetcode-90-Subsets II
- Leetcode 90. Subsets II
- 【一天一道LeetCode】#90. Subsets II
- leetcode_90题——Subsets II (递推)
- [LeetCode 78] Subsets && [LeetCode 90] Subsets II
- LeetCode(90) Subsets II
- LeetCode-90-Subsets II 暴力dfs回溯
- LeetCode 90:Subsets II
- LeetCode 90:Subsets II
- leetcode || 90、Subsets II
- [LeetCode]90. Subsets II
- [LeetCode 90] Subsets II
- Leetcode #90 Subsets II
- leetcode——90——Subsets II