Given a set of distinct integers, 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,3], a solution is:

[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

思路:遍历数组,有选择当前元素和不选当前元素两种操作,所以使用带回溯的递归

class Solution {
public:
vector<vector<int>> subsets(vector<int> &S) {
vector<vector<int>> result;
vector<int> pre;
result.push_back(pre);
if(S.size()==)
return result;
sort(S.begin(),S.end());
DepthFirst(S,result,pre,);
return result;
}
void DepthFirst(vector<int> &S , vector<vector<int>> &result ,vector<int> &pre , int depth)
{
if (depth==S.size()) {
return;
}
pre.push_back(S[depth]);
result.push_back(pre);
DepthFirst(S,result,pre,depth+);
pre.pop_back();
DepthFirst(S,result,pre,depth+);
}
};

思路II: DP. n个元素的数组结果,是n-1个数组结果,再加上插入第n个元素的结果

class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> ret;
vector<int> retItem;
ret.push_back(retItem);
int size; //number of memebers in ret
for(int i = ; i < nums.size(); i++){ //iterate the number to insert
size = ret.size();
for(int j = ; j < size; j++){ //iterate current item in ret
vector<int> newItem = ret[j];
newItem.push_back(nums[i]);
ret.push_back(newItem);
}
}
return ret;
}
};

最新文章

  1. 使用Web.Config Transformation配置灵活的配置文件
  2. Ajax 密码验证
  3. 自然语言9_NLTK计算中文高频词
  4. Bootstrap for MVC:Html.Bootstrap().TextBoxFor(model=&gt;model.Name)
  5. Spring中配置数据源的4种形式(转)
  6. Symmetric Tree [LeetCode]
  7. Spring中的事务管理详解
  8. C# Excel操作类
  9. C#必须掌握的系统类
  10. java基础知识3
  11. strace排除Linux服务器故障
  12. sheelエラー、オブジェクトを解析中にエラーが発生しました。
  13. C和C++安全编码读书笔记1
  14. 什么是GUID?
  15. MyBatis之基于XML的属性与列名映射
  16. [FJWC2018]全排列
  17. 爬虫(九)scrapy框架简介和基础应用
  18. Idea debug时报错:Command line is too long
  19. Java.WeakReference-SoftReference-PhantomReference
  20. 从1~N中任选出三个数,最小公倍数最大

热门文章

  1. Nginx 反向代理 如何在web应用中获取用户ip
  2. Ubuntu网络配置IP和DNS等,适用于14.04,16.04和17.10
  3. Mysql的日期转换成星期[某天对应周几]
  4. ubuntu自带截图工具gnome-screenshot
  5. MemSQL start[c]up Round 1 B题
  6. [CF995F]Cowmpany Cowmpensation
  7. fusionjs 学习一 基本试用
  8. const 补充
  9. 智能家居入门DIY——【五、执行命令】
  10. wkhtmltopdf是一个使用webkit网页渲染引擎开发的用来将 html转成 pdf的工具