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

leetcode第40题组合总和Ⅱ

原题出于leetcode第40题https://leetcode.cn/problems/combination-sum-ii/题目如下:

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

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

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

1树型结构

这里引入两个概念——树枝去重和树层去重,因为元素不可重复读取且不能有重复组合,因此我们只需处理树层去重,如上图所示。去重代码如下:

if(i>0 && candidate[i]==candidate[i-1] && used[i-1]==0) continue;

2代码

class Solution {
public:vector<int> path;vector<vector<int>> result;void backtracking(vector<int>& candidates,int target,int sum,int startindex,vector<bool>& used){if(sum>target) return ;if(sum==target){result.push_back(path); return;          }for(int i=startindex;i<candidates.size();i++){if(i>0 &&candidates[i]==candidates[i-1]&& used[i-1]==0)continue;sum+=candidates[i];path.push_back(candidates[i]);used[i]=true;backtracking(candidates,target,sum,i+1,used);sum-=candidates[i];path.pop_back();used[i]=false;}return ;}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {int n=candidates.size();vector<bool>used(n,0);path.clear();result.clear();sort(candidates.begin(),candidates.end());backtracking(candidates,target,0,0,used); return result;       }
};

以上树型结构的图片出自代码随想录

http://www.lryc.cn/news/545454.html

相关文章:

  • 迷你世界脚本状态接口:Buff
  • Java中Stream流的详细使用介绍
  • 【重构小程序】升级JDK1.8、SpringBoot2.x 到JDK17、Springboot 3.x(一)
  • 功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退
  • _ 为什么在python中可以当变量名
  • Java 9 到 Java 21 新特性全解析:从语法简化到API增强
  • LeeCode题库第三十九题
  • 卫星网络仿真平台:IPLOOK赋能空天地一体化通信新生态​
  • (十一)基于vue3+mapbox-GL实现模拟高德实时导航轨迹播放
  • 计算机面试项目经历描述技巧
  • 132. 分割回文串 II
  • 【每日学点HarmonyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较
  • 九、Spring Boot:自动配置原理
  • (动态规划 最长重复子数组)leetcode 718
  • SFP+(Enhanced Small Form-factor Pluggable)详解
  • 计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
  • Deepseek对ChatGPT的冲击?
  • 【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南
  • 极客大学 java 进阶训练营怎么样,图文详解
  • 机器人学习模拟框架 robosuite (3) 机器人控制代码示例
  • 玩转python: 几个案例-掌握贪心算法
  • 腾讯集团软件开发-后台开发方向内推
  • 哈希碰撞攻防战——深入浅出Map/Set的底层实现
  • 深度解析Ant Design Pro 6开发实践
  • 用大白话解释基础框架Spring Boot——像“装修套餐”一样简单
  • 第十三届蓝桥杯大赛软件赛决赛C/C++ 大学 B 组
  • java后端开发day25--阶段项目(二)
  • 岚图汽车2月销售8013辆,岚图知音硬核引领智能出行
  • 【CSS—前端快速入门】CSS 常用样式
  • 【软考-架构】1.3、磁盘-输入输出技术-总线