当前位置: 首页 > wzjs >正文

.net网站项目有哪些wordpress play主题

.net网站项目有哪些,wordpress play主题,湖州网站制作报价,山西省建设厅政务中心网站目录 78.子集 方法一、迭代法实现子集枚举 方法二、递归法实现子集枚举 方法三、根据子集元素个数分情况收集 方法四、直接回溯法 90.子集二 方法一、迭代法实现子集枚举 方法二、递归法实现子集枚举 方法三、根据子集元素个数分情况收集 方法四、直接回溯法 78.子集…

目录

78.子集

方法一、迭代法实现子集枚举

方法二、递归法实现子集枚举

方法三、根据子集元素个数分情况收集

方法四、直接回溯法

90.子集二

方法一、迭代法实现子集枚举

方法二、递归法实现子集枚举

方法三、根据子集元素个数分情况收集

方法四、直接回溯法


78.子集

78. Subsets

方法一、迭代法实现子集枚举

class Solution {
public:vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int>> res;vector<int> aset;int n = nums.size();int m = 1<<n;//pow(2,n);//子集总数是2的n次方个for(int mask = 0;mask <m;mask++){aset.clear();for(int i = 0;i < n;i++){if(mask & (1<<i))aset.push_back(nums[i]);}res.push_back(aset);}return res;}
};

方法二、递归法实现子集枚举

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsets(vector<int>& nums) {dfs(nums,0);return res;}void dfs(vector<int>& nums,int index){if(index == nums.size()){res.push_back(aset);return;}//当前子集选择nums[index]aset.push_back(nums[index]);dfs(nums,index+1);aset.pop_back();//当前子集不选nums[index]dfs(nums,index+1);}
};

方法三、根据子集元素个数分情况收集

 子集中元素的个数可以是0,1,2...,nums.size()

对于每一种情况,可以用回溯来收集。

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsets(vector<int>& nums) {//子集中元素的个数可以是0,1,2...,nums.size()for(int count = 0; count <= nums.size();count++){backtracking(nums,0,count);}return res;}//从nums中收集元素个数为total_count的子集void backtracking(vector<int>& nums,int start,int total_count){if(aset.size() == total_count){res.push_back(aset);return;}for(int i = start;i < nums.size();i++){aset.push_back(nums[i]);backtracking(nums,i+1,total_count);aset.pop_back();}}
};

方法四、直接回溯法

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsets(vector<int>& nums) {backtracking(nums,0);return res;}void backtracking(vector<int>& nums,int start){res.push_back(aset);//收集子集要放在前面,不然会遗漏// if(start == nums.size()) //终止条件可不写,因为下面的遍历也是这个条件//     return;for(int i = start ;i < nums.size();i++){aset.push_back(nums[i]);backtracking(nums,i+1);aset.pop_back();}}
};

90.子集二

90. Subsets II

方法一、迭代法实现子集枚举

class Solution {
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(),nums.end());vector<vector<int>> res;vector<int> aset;bool flag = true;int n = nums.size();int m = 1<<n;for(int mask = 0;mask < m;mask++){aset.clear();flag = true;for(int i = 0;i < n;i++){if(mask & (1<<i)){if(i > 0 && (mask&(1<<(i-1))) == 0 && nums[i]==nums[i-1]){flag = false;break;}aset.push_back(nums[i]);}}if(flag)res.push_back(aset);}return res;}
};

方法二、递归法实现子集枚举

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(),nums.end());dfs(false,nums,0);return res;}void dfs(bool choseLast,vector<int>& nums,int index){if(index == nums.size()){res.push_back(aset);return;}dfs(false,nums,index+1);if(!choseLast && index > 0 && nums[index] == nums[index-1])return;aset.push_back(nums[index]);dfs(true,nums,index+1);aset.pop_back();}
};

方法三、根据子集元素个数分情况收集

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(),nums.end());//后面树层去重,需要先排序,让相等的元素相邻int n = nums.size();//子集中元素的个数可能是0,1,2,...nfor(int count = 0;count <=n;count++){backtracking(nums,0,count);}return res;}void backtracking(vector<int>& nums,int start,int total_count){if(aset.size() == total_count){//子集中元素个数已经达到目标个数total_countres.push_back(aset);return;}for(int i = start;i < nums.size();i++){if(i > start && nums[i] == nums[i-1])//树层去重,continue;//可以把这里的循环理解为回溯树横向上不同子集的遍历,相同元素不跳过会导致重复收集之前收集过的答案aset.push_back(nums[i]);backtracking(nums,i+1,total_count);//这里的递归是对同一个子集的下一个元素的选取,同一个子集中是允许元素重复的。aset.pop_back();}}
};

方法四、直接回溯法

收集回溯树的结点

class Solution {vector<vector<int>> res;vector<int> aset;
public:vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(),nums.end());backtracking(nums,0);return res;}void backtracking(vector<int>& nums,int start){res.push_back(aset);for(int i = start;i < nums.size();i++){if(i>start && nums[i]==nums[i-1])continue;aset.push_back(nums[i]);backtracking(nums,i+1);aset.pop_back();}}
};


文章转载自:

http://LVNcKSpP.Lkgqb.cn
http://h51Cfd1V.Lkgqb.cn
http://6QU5NVT0.Lkgqb.cn
http://1AaPG0Bs.Lkgqb.cn
http://0SWuX8wL.Lkgqb.cn
http://YWhXCOuF.Lkgqb.cn
http://gfYVvWT3.Lkgqb.cn
http://J6R2sdkl.Lkgqb.cn
http://Y6k0OW5C.Lkgqb.cn
http://PiMvWtMD.Lkgqb.cn
http://vprBTgnx.Lkgqb.cn
http://ILf8Ormp.Lkgqb.cn
http://SVC57GAt.Lkgqb.cn
http://v2VpCWjD.Lkgqb.cn
http://DVu7uF7C.Lkgqb.cn
http://wwqrFfb6.Lkgqb.cn
http://LLDiYwYp.Lkgqb.cn
http://PpAyfgdi.Lkgqb.cn
http://nUnvbNN9.Lkgqb.cn
http://1VqJMTOp.Lkgqb.cn
http://Ffn8FVGB.Lkgqb.cn
http://LH41VEvT.Lkgqb.cn
http://i2qfho7f.Lkgqb.cn
http://86YerkiB.Lkgqb.cn
http://mo41AALg.Lkgqb.cn
http://CC7lP3E8.Lkgqb.cn
http://M2jPzDA8.Lkgqb.cn
http://4hFQM0it.Lkgqb.cn
http://LhedAKf8.Lkgqb.cn
http://BlSOu62V.Lkgqb.cn
http://www.dtcms.com/wzjs/704676.html

相关文章:

  • 网站m3u8链接视频怎么做的广东网站建设制作价格
  • wordpress 统计小工具关键词优化诊断
  • 手机网站带后台源代码上海网站建设团队杨浦
  • 网站建设福州营销型网站页面布局
  • 金坛市住房和城乡建设局网站遨游网站建设有限公司
  • 个人网站建设的参考文献微信公众号的微网站怎么做的
  • 郑州网站开发培训班邢台建设网
  • 杭州网站建设 网站设计网站打不开怎么办
  • 株洲网站制作公司网站建设公司知名企业
  • dz论坛中英文网站怎么做网站做定制还是固定模板
  • 公司网站方案网络营销策略存在的问题
  • 今天的湖北新闻南宁网站seo优化公司
  • win2008系统做网站前端做项目的网站资源
  • 中国铁路总公司建设管理部网站视频网站建设公司排名
  • 网站服务器位于北美wordpress 引入文件
  • 涟水住房和城乡建设局网站莱芜网络推广渠道
  • 尚仁网站建设网站建设低价网站到底便宜在哪
  • 网站开发项目名注册公司网站流程
  • 找人做网站注意事项wordpress hotnews
  • php 外贸商城网站建设电子商城怎么注册
  • 美食网站开发的特点与总结一般大概需要多少钱
  • 承包网站开发东莞容桂网站制作
  • 高频网站开发做网站开发的过程
  • 北京建设局网站徐州seo推广优化
  • 网站建设基本资料个人网站做接口可以么
  • 有了网站怎么做app吗网站建设中技术程序
  • 百度给做网站收费多少钱卡地亚手表官方网站查询
  • 电子 公司 网站建设wordpress如何上传图片
  • 免费国外医疗静态网站模板下载长沙seo智优营家
  • html5医院网站网站服务建设公司