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

天津市城乡建设部网站首页创网通信科技有限公司

天津市城乡建设部网站首页,创网通信科技有限公司,永久免费linux云主机,教育企业重庆网站建设目录1、题目2、思考分析3、未经优化代码4、剪枝优化1、题目 给定一个无重复元素的数组 candidates 和一个目标数 target #xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 2、思考分析 解空间树宽度部分即数… 目录1、题目2、思考分析3、未经优化代码4、剪枝优化1、题目 给定一个无重复元素的数组 candidates 和一个目标数 target 找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 2、思考分析 解空间树宽度部分即数组 candidates内集合深度取决于target. 一开始的重复元素理解错误了每层循环都从0开始 for(int i0;icandidates.size();i) 这样是不对的会产生重复组合。 我们仍然需要采用startindex作为for起始位置不过对于下一层我们的startindex不是startindex1而是仍然是startindex这样才能重复取相同元素。 图1 for从0开始 图2 for从i开始 3、未经优化代码 class Solution { public:vectorvectorint result;vectorint res;int sum;void clear_solution_param(){result.clear();res.clear();sum0;}void backtracking(vectorint candidates,int startindex,int n){ if(sum n) return;if(sum n){result.push_back(res);return;}for(int istartindex;icandidates.size();i){//处理结点res.push_back(candidates[i]);sumcandidates[i];//递归,探索下一层backtracking(candidates,i,n); //递归sum-candidates[i];//回溯撤销处理结果res.pop_back();}}vectorvectorint combinationSum(vectorint candidates, int target) {clear_solution_param();backtracking(candidates,0,target);return result;} };4、剪枝优化 先对数组进行排序这样集合元素排列就是有序的了方便剪枝。这个在回溯法中经常用到 对于同一层的for循环如果sum加上此时的候选元素的和大于target则没有必要继续深入下去了。 class Solution { public:vectorvectorint result;vectorint res;int sum;void clear_solution_param(){result.clear();res.clear();sum0;}void backtracking(vectorint candidates,int startindex,int n){ if(sum n) return;if(sum n){result.push_back(res);return;}for(int istartindex;icandidates.size();i){//由于输入的数组是有序的所以直接进行剪枝。如果sum加上这个集合元素大于目标此层就不需要往后看了因为后面的元素加上sum肯定大于目标if(sumcandidates[i]n) break;//处理结点res.push_back(candidates[i]);sumcandidates[i];//递归,探索下一层backtracking(candidates,i,n); //递归sum-candidates[i];//回溯撤销处理结果res.pop_back();}}vectorvectorint combinationSum(vectorint candidates, int target) {clear_solution_param();//排序加速剪枝sort(candidates.begin(),candidates.end());backtracking(candidates,0,target);return result;} };
http://www.yutouwan.com/news/423413/

相关文章:

  • 制定一个网站建设方案wordpress自定义登录地址
  • 南昌网站seo石家庄 外贸网站建设公司
  • 广州市越秀区建设局网站前端页面设计流程
  • 做公司网站的流程ssh购物网站开发视频
  • 网站推广到底应该怎么做韩国做美食的视频网站
  • 广州专业做网站多少钱live wordpress主题
  • 英文外贸网站设计科技数码app排名
  • 推销网站的方法江苏昆山网站建设
  • 可以看帖子的网站wordpress可以用html5吗
  • 禹城网站建设公司免费 flash网站源码
  • 上海企炬做的网站做淘宝客网站教程
  • 电子商务网站开发的课程介绍软件编程入门先学什么
  • 织梦本地安装网站易云自助建站
  • 淘宝api 做网站久治县网站建设公司
  • 网站做百度推广怎么推广网站手机qq网页版网站
  • 做网站免费的域名临沂门户网站制作
  • 网站建设会议议程wordpress游戏插件下载
  • 建设银行手机网站首页济宁市工程建设职业学校网站
  • 企业建设网站能否报销网站地址查询网
  • 嘉兴市做网站优化河北网站建设备案
  • 网站建设与维护中职十大app开发公司
  • 网站后台管理的超链接怎么做网站建设错误代码50019
  • 网站建设皖icp韶关做网站需要多少钱
  • 三亚网站建设介绍集团网站建设特点
  • 北京给网站做系统的公司名称seo 优化一个月费用
  • 博罗网站设计公司炫酷的网站开发
  • 拟定网站建设合同微信小程序服务器费用
  • 惠州网站建设是什么意思古香古色网站模板
  • 莱州建设局网站网站建设视屏教程
  • 大气简约企业网站模板免费下载网站说建设中