78. Subsets (Back-Track, DP)
2024-08-29 02:55:04
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;
}
};
最新文章
- 使用Web.Config Transformation配置灵活的配置文件
- Ajax 密码验证
- 自然语言9_NLTK计算中文高频词
- Bootstrap for MVC:Html.Bootstrap().TextBoxFor(model=>;model.Name)
- Spring中配置数据源的4种形式(转)
- Symmetric Tree [LeetCode]
- Spring中的事务管理详解
- C# Excel操作类
- C#必须掌握的系统类
- java基础知识3
- strace排除Linux服务器故障
- sheelエラー、オブジェクトを解析中にエラーが発生しました。
- C和C++安全编码读书笔记1
- 什么是GUID?
- MyBatis之基于XML的属性与列名映射
- [FJWC2018]全排列
- 爬虫(九)scrapy框架简介和基础应用
- Idea debug时报错:Command line is too long
- Java.WeakReference-SoftReference-PhantomReference
- 从1~N中任选出三个数,最小公倍数最大
热门文章
- Nginx 反向代理 如何在web应用中获取用户ip
- Ubuntu网络配置IP和DNS等,适用于14.04,16.04和17.10
- Mysql的日期转换成星期[某天对应周几]
- ubuntu自带截图工具gnome-screenshot
- MemSQL start[c]up Round 1 B题
- [CF995F]Cowmpany Cowmpensation
- fusionjs 学习一 基本试用
- const 补充
- 智能家居入门DIY——【五、执行命令】
- wkhtmltopdf是一个使用webkit网页渲染引擎开发的用来将 html转成 pdf的工具