90. Subsets II
来源:互联网 发布:上海 对日程序员 招聘 编辑:程序博客网 时间:2024/06/05 18:31
问题描述
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],[]]
解决办法
递归构造,有重复的,就只在有重复的部分进行添加。即假设现在有了[],[1],[2],[1,2] 再遇到2的时候,只添加[2]+[2],[1,2]+[2]。代码
class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& nums) { sort(nums.begin(),nums.end()); return helper(nums); } vector<vector<int>> helper(vector<int>& nums) { vector<vector<int>> result; if (nums.size() == 0) { result.push_back(vector<int>()); return result; } int last = nums[nums.size()-1]; nums.pop_back(); int count = 0; for (int i = nums.size() - 1; i >= 0; --i) { if (last > nums[i]) break; count++; } result = helper(nums); int size = result.size(); if (count == 0) { for(int i = 0; i < size; ++i) { vector<int> tmp = result[i]; tmp.push_back(last); result.push_back(tmp); } } else { for (int i = size - 1; i >= 0; --i) { int new_count = 0; for(int j = result[i].size() -1; j >= 0; --j) { if (result[i][j] < last) break; new_count++; } if (new_count == count) { vector<int> tmp = result[i]; tmp.push_back(last); result.push_back(tmp); } else break; } } return result; }};
0 0
- 78. Subsets && 90. Subsets II
- 78. Subsets 90. Subsets II
- 78. Subsets &90. Subsets II
- 78. Subsets,90. Subsets II
- 78. Subsets && 90. Subsets II
- 78. Subsets 90. Subsets II
- 78. Subsets & 90. Subsets II
- 90. Subsets II
- [LeetCode]90.Subsets II
- [Leetcode] 90. Subsets II
- LeetCode --- 90. Subsets II
- 90. Subsets II
- [leetcode] 90.Subsets II
- 【leetcode】90. Subsets II
- Leetcode 90. Subsets II
- 90. Subsets II
- 90. Subsets II LeetCode
- leetcode 90. Subsets II
- HashMap实现原理分析
- request、response、session、application、out、pagecontext、config、page、exception
- PCI、PCI-x,PCI-E兼容以及他们之间的区别详细图解
- 【LeetCode】No.70 Climbing Stairs
- 对象的存储模型
- 90. Subsets II
- linux上Oracle启动步骤
- E: Could not get lock /var/lib/dpkg/lock(无法获得锁)
- esri-leaflet入门教程(4)-加载各类图层
- Unity3d独立开发
- 识别库
- 刚开始学习android的我的笔记-2
- C# 的基本语法
- jsoup爬虫网页数据出现异常