【leetcode】 subset I、II
来源:互联网 发布:linux 网银 编辑:程序博客网 时间:2024/05/22 05:13
【subset I】问题:
Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]分析:
1、求一组不重复的整数的所有子集;
2、迭代
代码:
class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { sort(nums.begin(),nums.end()); vector<vector<int>> res(1,vector<int>()); int m=nums.size(); for(int i=0;i<m;i++){ int n=res.size(); for(int j=0;j<n;j++){ res.push_back(res[j]); res.back().push_back(nums[i]); } } return res; }};
【subset 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], []]分析:
1、现在这组整数允许有重复值;
2、迭代
3、举例[1 2 2]来分析:处理第一个2时子集合为[], [1], [2], [1, 2],而这时再处理第二个2时,如果在[]和[1]后直接加2会产生重复,所以只能在上一个循环生成的后两个子集合后面加2。不重复的条件就是:nums[i]!=nums[i]或者j>pre (其中j从0到res.size(),pre是之前res的大小)
代码:
class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& nums) { sort(nums.begin(),nums.end()); vector<vector<int>> res(1,vector<int>()); int m=nums.size(); int pre=0; for(int i=0;i<m;i++){ int n=res.size(); for(int j=0;j<n;j++){ if(i==0||nums[i]!=nums[i-1]||j>=pre){ res.push_back(res[j]); res.back().push_back(nums[i]); } } pre=n; } return res; }};
0 0
- Leetcode Subset I & II
- 【leetcode】 subset I、II
- Subset I & II
- LeetCode(90)Subset II
- LeetCode 练习: Subset ii
- 【Leetcode】之Subset II
- leetcode之subset II
- 9.4 subset I and II,
- LeetCode78/90 subset I/II**
- Subset II [Leetcode 解题报告]
- LeetCode 90.Subset II java solution
- subset II
- Subset I
- Leetcode Permutation I & II
- LeetCode Permutations I && II
- 【LeetCode】Subsets I && II
- [LeetCode][I]Permutations II
- [Leetcode]Subsets I&II
- Java学习5(泛型初识及其相关)
- iOS开发-从app跳转到第三方应用和调用系统功能
- 解决修改css文件或js文件后浏览器无法及时更新的问题方法
- 微信公众号的“温柔一刀”,搜狗微信搜索部分功能将被下线
- perl socket 客户端发送消息
- 【leetcode】 subset I、II
- Matlab长时间运行越来越慢的问题
- Maven自动部署Tomcat错误排除
- 基于SIP的视频会议系统结构和原理
- Android Studio 添加方法描述快捷键
- Iperf使用方法
- 登录操作报错 java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES 解决方法
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题 -- 好多鱼!
- Android开发国际化