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

文山专业网站建设公司教育培训平台

文山专业网站建设公司,教育培训平台,怀化网站开发,台州地区网站建设题目(leecode T40): 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含…

题目(leecode T40):

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的每个数字在每个组合中只能使用 一次 。

注意:解集不能包含重复的组合。 

方法:本题的要求是每个元素在组合中只能出现一次,并且候选的数字是有可能重复的,因此需要去重操作。分析回溯三部曲。

1:传入参数与返回值:与组合总和的套路相同,此题还需要加一个bool型数组used,用来记录同一树枝上的元素是否使用过。这个集合去重的重任就是used来完成的。

2:终止条件:和组合总和的要求一致,当sum值等于target值时就终止,并且result结果数组中收集当前path的结果,如果sum大于了target就直接返回。

3:单层处理逻辑:本题有一个难点就是因为元素有重复所以最终的结果中我们要去重,有一种方法是算出所有的结果然后再利用set或map的结构去重,但这种方法容易超时,因此我们在计算结果的过程中就需要去重了。去重具体使用的时一个bool类型的used数组,他记录着候选数组中的每个元素的值是否使用过了。具体逻辑入代码所示、

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex, vector<bool>& used) {if (sum == target) {result.push_back(path);return;}for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) {// used[i - 1] == true,说明同一树枝candidates[i - 1]使用过// used[i - 1] == false,说明同一树层candidates[i - 1]使用过// 要对同一树层使用过的元素进行跳过if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {continue;}sum += candidates[i];path.push_back(candidates[i]);used[i] = true;backtracking(candidates, target, sum, i + 1, used); // 和39.组合总和的区别1,这里是i+1,每个数字在每个组合中只能使用一次used[i] = false;sum -= candidates[i];path.pop_back();}}public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<bool> used(candidates.size(), false);path.clear();result.clear();// 首先把给candidates排序,让其相同的元素都挨在一起。sort(candidates.begin(), candidates.end());backtracking(candidates, target, 0, 0, used);return result;}
};

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

相关文章:

  • 做蛋糕视频的网站迅当网络深圳外贸网站建设
  • 莱芜信息港官网wordpress语言切换 seo
  • wordpress图书页面flash网站做seo优化好不好
  • 文化产业协会网站源码购物网站开发需求分析
  • 云南建网站牛人网络网站
  • 网站标题上的小图标怎么做资源网站如何做
  • 网站集约建设巴中市城乡和住房建设局网站
  • 网站怎么做文本跳出来网站建设zrhskj
  • 微信放在网站根目录杭州平面设计
  • 买了域名和空间怎么做网站网站开发的职业分析
  • 广州做网站平台网站建设毕业答辩ppt怎么写
  • 网站设计模板免费下载免费网址2021年能用的
  • 怎么查网站是否被k品牌网鞋有哪些牌子
  • 构建企业网站中国电力建设集团股份有限公司网站
  • 免费网站去哪找产品画册设计怎么做
  • 傻瓜式网站开发工具施工企业安全管理制度
  • 国外的做的比较优秀的网站汝州市文明建设门户网站
  • 免备案的网站外包网站推荐
  • 网站关键词太多好不好wordpress侧边栏上拉后固定
  • 服装网站设计方案家庭电影网站建设
  • 桂林网站建设电子商务网站建设学什么软件
  • 设计素材网站能挣钱吗前端和网站部署做网站的
  • 网站扫码充值怎么做的凤泉网站建设
  • 校园网站怎么建设含山建设局网站
  • 网站基础三要素营销方案英文
  • 青岛网站优化快速排名哪个域名注册网站好
  • aspx网站服务器失去响应2022年传销最新消息
  • 学校网站建设重要性wordpress上传图片错误媒体库错误
  • 甘肃省建设工程安质局网站南京时事重大新闻
  • 外国做营销方案的网站外贸公司 网站