leetcode笔记:Subsets II
来源:互联网 发布:xampp中mysql定时重启 编辑:程序博客网 时间:2024/06/07 03:58
一. 题目描述
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], []]
二. 题目分析
该题相比Subsets一题略有不同,该题在给定的数组中,允许出现重复的元素。但最后输出的排列不能有重复的组合。因此,在DFS时,使用一个数组temp来记录某个数是否被使用过即可。
三. 示例代码
#include <iostream>#include <vector>using namespace std;class Solution {public: vector<vector<int> > subsetsWithDup(vector<int> nums) { sort(nums.begin(), nums.end()); subsets(nums, 0); return result; }private: vector<int> temp; vector<vector<int> > result; void subsets(vector<int> nums, int index){ if(index == nums.size()) { result.push_back(temp); return; } if(temp.size() == 0 || temp[temp.size()-1] != nums[index]) subsets(nums, index + 1); temp.push_back(nums[index]); subsets(nums, index + 1); temp.pop_back(); }};
四. 小结
该题需要注意的地方是,避免出现同样的排列组合。
3 0
- leetcode笔记:Subsets II
- 【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
- ASP.NET+IIS+Access发布网站出现HTTP 错误 404.0 - Not Found
- 关于道格拉斯算法的一些思考
- 安装、配置、使用kermit
- RC522 读卡器和写卡器 读写测试程序----基于cc2530开发板
- 太上感应篇0005
- leetcode笔记:Subsets II
- expect
- Java 去除字符串中多余的空格,只留一个
- UIScrollView新手教程
- 计算机编程语言发展史
- 大师带你学大数据
- 太上感应篇0006
- HDU1530 【最大团 水】
- sql之left join、right join、inner join的区别