[CareerCup] 9.4 Subsets 子集合
9.4 Write a method to return all subsets of a set.
LeetCode上的原题,请参见我之前的博客Subsets 子集合和Subsets II 子集合之二。
解法一:
class Solution { public:vector<vector<int> > getSubsets(vector<int> &S) {vector<vector<int> > res(1);for (int i = 0; i < S.size(); ++i) {int size = res.size();for (int j = 0; j < size; ++j) {res.push_back(res[j]);res.back().push_back(S[i]);}}return res;} };
解法二:
class Solution { public:vector<vector<int> > getSubsets(vector<int> &S) {vector<vector<int> > res;vector<int> out;getSubsetsDFS(S, 0, out, res);return res;}void getSubsetsDFS(vector<int> &S, int pos, vector<int> &out, vector<vector<int> > &res) {res.push_back(out);for (int i = pos; i < S.size(); ++i) {out.push_back(S[i]);getSubsetsDFS(S, i + 1, out ,res);out.pop_back();}} };
解法三:
class Solution { public:vector<vector<int> > getSubsets(vector<int> &S) {vector<vector<int> > res;int max = 1 << S.size();for (int i = 0; i < max; ++i) {vector<int> out = convertIntToSet(S, i);res.push_back(out);}return res;}vector<int> convertIntToSet(vector<int> &S, int k) {vector<int> sub;int idx = 0;for (int i = k; i > 0; i >>= 1) {if ((i & 1) == 1) {sub.push_back(S[idx]);}++idx;}return sub;} };
[CareerCup] 9.4 Subsets 子集合相关推荐
- Java List部分截取,获得指定长度子集合
subList方法用于获取列表中指定范围的子列表,该列表支持原列表所支持的所有可选操作.返回列表中指定范围的子列表. 语法 subList(int fromIndex, int toIndex) fr ...
- 从集合中选出一些元素组成子集合,使得这些子集合符合某种约束
今天朋友问了一个问题:现有整型数组 a[6] = {1,2,4,3,5,8},写一个函数,找出所有和为10的集合.穷举法暴力解决很容易,但没有体现算法思想.不妨将问题上升:有某大小为N的整型数组,从中 ...
- 90. Subsets II
Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...
- 程序员应该吃透的集合List
一:先看看集合框架接口图 (图片来源于网络) 从图中可以看到List实现了Collection接口. 二:Collection接口是什么? 在java类库中,Collection接口是集合类的基本接口 ...
- java 集合 接口_Java集合之Collection接口
1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...
- Java基础篇:Java集合
文章目录 1.概述 2.Collection接口 2.1 Collection接口方法 2.2 Iterator迭代器接口 2.3 Collection子接口之:List接口 2.4 Collecti ...
- Java集合知识:TreeMap
TreeMap是按照Key的排序结果来组织内部结构的Map类集合,它改变了Map类散乱无序的形象.虽然TreeMap没有ConcurrentHashMap和HashMap普及(毕竟插入和删除的效率远没 ...
- java treeset原理_Java集合 --- TreeSet底层实现和原理(源码解析)
概述 文章的内容基于JDK1.7进行分析,之所以选用这个版本,是因为1.8的有些类做了改动,增加了阅读的难度,虽然是1.7,但是对于1.8做了重大改动的内容,文章也会进行说明. TreeSet实现了S ...
- 集合框架一:Collection集合
目录 概述 Colletion接口常用方法 List集合 常用方法 ArrayList实现类 1.底层实现原理 2.常用方法 3.add()方法的扩容问题 4.sort()方法 linkedList实 ...
最新文章
- Linux系统基本命令之vim编辑器的使用
- 膨胀卷积(Dilated convolution)
- 贝叶斯定理( Bayes_Theorem)
- mybatis学习(12)com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP
- mysql 操作xm_mysql基本命令使用
- eclipse Maven配置
- NVIDIA历史驱动下载
- CefSharp如何获取请求响应头Headers中的数据
- 智能耳机测试软件,内置心率监测仪 捷波朗运动耳塞体验!
- BC30 KiKi和酸奶
- macOS上的符号链接Symlink是什么,以及该怎么使用
- IB数学HL/SL考试大纲简单介绍
- 互联网经济的背后-梅特卡夫效应与双边市场效应
- java毕业生设计在线点餐系统计算机源码+系统+mysql+调试部署+lw
- VS2012使用svn
- U3D_Shader编程(第二篇:基础夯实篇)
- 马尔受伤后,巴西媒体透露斯科拉里在训练中演练了三后腰阵型
- Windows下测试tcp/udp端口是否打开
- 互联网时代,怎么做到真正的信息安全?
- 重庆计算机本科分数线是多少,重庆市2017年高考分数线公布