40. 组合总和 II021(回溯法)

一:题目

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

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

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

示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,
输出:
[
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]
示例 2:输入: candidates = [2,5,2,1,2], target = 5,
输出:
[
[1,2,2],
[5]
]

提示:

1 <= candidates.length <= 100
1 <= candidates[i] <= 50
1 <= target <= 30

二:上码

class Solution {
public:vector<vector<int> >ans;vector<int>path;void backtacking(vector<int>& v,int num,int index){int sum = accumulate(path.begin(),path.end(),0);if(sum == num){ans.push_back(path);return ;}for(int i = index; i < v.size() && sum < num; i++){//这里需要注意的是我们是选择 i > index  这是表示的是回溯的时候判断同一层中的元素//是否已经用过了,(这里的前提还有的是 我们是将相同的元素提前通过排序使其在一块了) if(i > index && v[i] == v[i-1]) continue;path.push_back(v[i]);backtacking(v,num,i+1);//这里加上index可以避免重复path.pop_back();}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {//将candiates 中的元素进行排序 让相同的元素挨着一块  这样我们就可以过滤同一层中使用过的元素sort(candidates.begin(),candidates.end());backtacking(candidates,target,0);return ans;}
};

在这里插入图片描述
加油 宝子!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core + Kubernetes:Helm

Helm[1] 作为 Kubernetes 体系的包管理工具&#xff0c;已经逐渐成为了应用分发标准&#xff0c;在 .NET 开发中&#xff0c;可以理解为与 NuGet 包类似。回顾之前文章中的介绍&#xff0c;Kubernetes 中单个服务的部署有时会涉及到多种资源类型&#xff0c;如&#xff1a;Depl…

vue项目中引入阿里图标iconfont

vue如何在创建好的项目中引入阿里图标iconfont呢&#xff0c;涉及到以下几个步骤&#xff1a; 1、首先先到阿里图标官方网站https://www.iconfont.cn/&#xff0c;先对账户进行登录&#xff0c;登录完成后任意选择几个图标加入购物车 2、加入购物车后&#xff0c;点击页面最右…

78. 子集022(回溯法)

一&#xff1a;题目 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;…

vue项目中使用vue-router进行路由配置及嵌套多级路由

在vue项目中&#xff0c;很多时候我们需要二级路由或者三级路由来跳转页面&#xff0c;但大部分需求下我们都只用到了二级路由&#xff0c;有小伙伴就会发现&#xff0c;用到三级路由的时候&#xff0c;就会突然不知所措&#xff0c;是有新的方法呢&#xff0c;还是跟二级路由配…

解决流氓软件方法(亲测有效)

一:问题描述 本来我想在百度上下载一个API文档&#xff0c;我当然知道是取官网上下载了&#xff0c;但是我想要的是中文版&#xff0c;所以我就搜啊搜&#xff0c;搜到脚本之家 &#xff0c;那里面可以下载&#xff0c;我记得以前在里面下载过东西&#xff0c;以为安全就去下载…

.NET Core:跨平台和开源,让我在框架中脱颖而出

自从 2016 年微软发布了 .NET Core 1.0&#xff0c;至今 4 年的时间里&#xff0c;.NET Core 历经 7 个正式版本和几十个 Preview 版本。.NET Core 作为最通用的框架&#xff0c;和其他软件框架不同的是&#xff0c;它面向 Windows、Linux 和 MacOS 多个平台&#xff0c;在桌面…

vue实现侧边折叠菜单栏手风琴效果

在我们做管理后台亦或是产品流程时&#xff0c;总是需要一个菜单栏或者导航栏来架起我们的产品架构&#xff0c;那么&#xff0c;如何用vue实现侧边折叠导航栏呢&#xff1f;接下来将一一介绍。 请先看效果演示图。 步骤1&#xff1a;先架构整个页面的布局&#xff0c;撰写html…

程序员过关斩将--解决分布式session问题

微信搜一搜架构师修行之路session 说到 session&#xff0c;我相信每个程序员都不陌生&#xff0c;或多或少在项目中使用过。session 这个词&#xff0c;其实是一个抽象的概念&#xff0c;它不像 Cookie 那样有着明确的定义。当大多数程序员谈论 session 的时候&#xff0c;可能…

如何将nodejs项目程序部署到阿里云服务器上

将nodejs项目程序部署到阿里云服务器上一、概述二、具体步骤1、拥有自己的服务器2、下载Xshell3、 oneinstack配置web环境4、 XShell连接远程主机5、更新系统软件6、在服务器上安装node环境7、部署项目到服务器上8、安装pm2并启动nodejs项目三、快捷指令1、linux的常用命令2、p…

101. 对称二叉树023(BFS)

一&#xff1a;题目 二&#xff1a;上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullpt…

中移动完成透镜天线远距覆盖和降本增效试点

日前&#xff0c;中国移动研究院在官微上正式发布了《新型透镜天线进行首次高铁覆盖实验》一文。中国移动研究院、中国移动甘肃公司与西安海天天线科技股份有限公司联合开展的人工介质圆柱透镜天线在高铁、高速等线状纵深领域的长距覆盖取得突破性进展。两年以来&#xff0c;铁…

基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)

1、安装软件 编程工具&#xff1a;Notepad 运行环境&#xff1a;phpEnv 2、用phpEnv建立本地运行环境 &#xff08;1&#xff09;官方下载phpEnv&#xff0c;运行phpEnv&#xff0c;启动服务。服务启动之后&#xff0c;apache和mysql变绿。如下图所示&#xff1a; &#xff0…

在idae中为什么用Module创建一个新的Maven项目的时候会被卡死

一:问题描述 然后就会卡死&#xff0c; 二&#xff1a;问题解决 我们会发现这里的路径是有问题的&#xff0c;idea自带的maven会卡死我们&#xff0c;因为下载jar包的速度慢的惊人 将其改为我们自己maven路径&#xff0c;下载速度会很快&#xff0c;便不会出现卡死的现象&a…

ASP.NET Core Blazor Webassembly 之 数据绑定

上一次我们学习了Blazor组件相关的知识&#xff08;Asp.net Core Blazor Webassembly - 组件&#xff09;。这次继续学习Blazor的数据绑定相关的知识。当代前端框架都离不开数据绑定技术。数据绑定技术以数据为主导来驱动UI界面&#xff0c;用户对数据的修改会实时提现在UI上&a…

PHP做二次开发:本机安装ThinkCMF系统

使用工具&#xff1a;phpEnv、TortoiseGit 具体步骤&#xff1a; 1.获取thinkcmf源代码 2.修改Hosts文件设置虚拟域名指向本机 3.配置apache建立本地站点 4.建立数据库 5.访问本地站点开始安装 第一步&#xff1a;获取thinkcmf源代码 1.打开浏览器访问gitee.com&#xff0c;搜…

107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)

一&#xff1a;题目 二&#xff1a;上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullpt…

PHP做二次开发:ThinkCMF门户应用安装

使用工具&#xff1a;phpEnv 具体步骤&#xff1a; 1.获取门户应用portal源码 2.安装portal代码 3.执行portal数据库文件 4.安装并启用前台模板 5.导入后台管理菜单 第一步&#xff1a;获取门户应用portal源码 1.打开官方网站http://kancloud.cn/thinkcmf/faq/1005840&#xf…

vector的逆序输出(神奇的vector)

一&#xff1a;直接上代码&#xff08;逆序输出&#xff09; #include<bits/stdc.h> using namespace std; int main(){vector<int> v;for(int i 0; i < 5; i){v.push_back(i); }reverse(v.begin(),v.end());for(int i 0; i < 5; i){cout << v[i] &…

初识ABP vNext(6):vue+ABP实现国际化

点击上方蓝字"小黑在哪里"关注我吧语言选项语言切换注意前言上一篇介绍了ABP扩展实体&#xff0c;并且在前端部分新增了身份认证管理和租户管理的菜单&#xff0c;在实现这两个功能模块前&#xff0c;先来解决一下界面文字国际化的问题。开始国际化&#xff08;简称 …

『软件工程1』详解软件是什么

软件基本概念一、什么是产品二、软件的双重角色三、软件的涵义及特征四、软件应用五、软件危机六、软件神话一、什么是产品 1、从用户的角度 产品实际上就是信息&#xff0c;以某种方式使得用户世界更加美好 2、从软件工程师的角度 产品实际上就是软件 二、软件的双重角色 1…