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

内部网站建设要求重庆网站推广产品

内部网站建设要求,重庆网站推广产品,怎样创建网站app,asp网站开发的实训习题:(leetcode39) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 c…

习题:(leetcode39)

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

分析:

回溯三部曲:

1.回溯函数模版返回值以及参数

2.回溯函数终止条件

3.回溯搜索的遍历过程

回溯伪代码:

void backtracking(参数){if(终止条件){存放结果;return;}
for(选择:本层集合中元素){处理节点;backtracking(路径,选择列表);//就是遍历下一层回溯,撤销处理结果;}
}

使用的方法是回溯,还是遍历整体得到答案,但此题不同,题目中说可以有重复的元素,此时就要考虑回溯函数中的参数如何写。可能大家也想到能不能通过创建used数组,来记录元素使用情况,如果在不满足target的情况下,让原元素仍可继续使用。但这种方法还是太麻烦。此题的巧妙之处就是在回溯函数中的参数如何满足题目条件。就是在定义的index在传递时传的是当前的遍历的值,即就是index=i传i的值。backtracking(candidates, target, sum, i);就是本题的关键,其余代码根据回溯三步曲和回溯模板就可以写出。

代码分析:

class Solution {
public:// 存储所有可能的组合结果vector<vector<int>> result;// 存储当前正在构建的组合vector<int> path;// 回溯函数,用于找到所有可能的组合void backtracking(vector<int>& candidates, int target, int sum, int index) {// 如果当前组合的和超过了目标值,则直接返回if (sum > target) return;// 如果当前组合的和等于目标值,则将当前组合添加到结果集中if (sum == target) {result.push_back(path);return;}// 遍历候选数字,从index开始,允许重复使用数字for (int i = index; i < candidates.size(); i++) {// 将当前候选数字加入当前组合,并更新当前组合的和sum += candidates[i];path.push_back(candidates[i]);// 递归调用回溯函数,由于可以重复使用数字,所以index仍然是ibacktracking(candidates, target, sum, i);// 回溯,移除最后加入的数字,并恢复之前的和sum -= candidates[i];path.pop_back();}}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {backtracking(candidates, target, 0, 0);return result;}
};

http://www.yayakq.cn/news/287008/

相关文章:

  • 网站恶意镜像高端的培训行业网站开发
  • 怀化市住房与城乡建设厅网站在国外做电商网站
  • 网站开发成本报表大埔县住房城乡规划建设局网站
  • 网站建设包括哪些费用代理公司注册哪家好
  • 网站审批wordpress货币插件
  • 网站开发公司管理模式创建了网站
  • wordpress快速仿站视频教程电子信息工程专业招聘信息网
  • 廊坊网站建设制作龙岗汤坑社区网站建设
  • 创办网站的步骤中英网站源码下载
  • 广州家电维修网站建设一个网站建设需要多少人力
  • 滨湖网站制作谷歌广告投放教程
  • 建设银行 杭州招聘网站wordpress设置文章图片
  • 公司网站的seo优化深圳英文网站建设公司
  • 做电子商务网站的意义河北综合网站建设系列
  • 高端营销型企业网站建设西安网站免费制作
  • 迈诺网站建设上海新闻头条
  • 网站建设技术包括哪些汽车网站页面布局设计
  • 陕西网站开发公司电话赶集的网站怎么做
  • 用个人的信息备案网站工信部申诉备案网站
  • 网站建设人工智能开发能用二级域名做网站吗
  • 长宁区网站建设网站制备案 网站首页地址
  • 企业网站的内容营销仿70网站分类目录源码
  • 资源下载网站源码seo发外链工具
  • 北京珠宝网站建设福田祥菱q双排小货车报价及图片
  • 如何评估网站wordpress覆盖升级
  • wordpress 瀑布流ajax台州企业网站seo
  • python写网站做淘宝客找商品网站有哪些
  • 手机站电影郑州网站外包公司简介
  • 做网站销售门窗怎么做成都网站建设哪里好点
  • 设置网站清新太和做网站