40. 组合总和 II

题目描述

给定一个候选人编号的集合 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>> res;vector<int> path; // 记录当前路径void backtrack(vector<int>& candidates, int beg, int target, vector<bool> &used){if(target == 0) // 找到一个结果{res.push_back(path);return;}//for(int i = beg; i < candidates.size() && candidates[i] <= target; ++ i){// 同一层使用过相同元素就跳过if(i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) continue;path.push_back(candidates[i]);used[i] = true;backtrack(candidates, i + 1, target - candidates[i],used);used[i] = false;path.pop_back();}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {// 一个路径中的某一位置不可以用重复的元素,这样会造成结果重复// 使用used数组标识是同一层用过某个节点还是同一个枝干用过某个节点// candidates[i] == candidates[i - 1] && used[i - 1] == false 表示的是同一层使用过,也就是路径上某一位置之间已经用过candidates[i - 1]元素// 先升序排序vector<bool> used(candidates.size(), false);path.clear();res.clear();sort(candidates.begin(), candidates.end());backtrack(candidates, 0, target, used);return res;}
};

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

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

相关文章

Android之 知识总结第二篇

一&#xff0c; Gradle 、AGP(Android Gradle Plugin)、 buildTools分别是什么&#xff0c;他们之间什么关系&#xff1f; Gradle Gradle是基于JVM的构建工具。他本身使用jave写的&#xff0c;gradle的脚本也就是build.gradle通常是用groovy语言。Android BuildTools Android S…

1D和2D布朗运动matlab

布朗运动是一种随机现象&#xff0c;下面的M函数brwnm2.m给出了二维Brown运动&#xff0c;其中[t0,tf]是时间区间&#xff0c;h是采样步长&#xff0c;w(t)&#xff0c;z(t)是布朗运动。function [t,w,z]brwnm2(t0,tf,h) tt0:h:tf; xrandn(size(t))*sqrt(h); yrandn(size(t))*s…

LightDB - 支持quarter 函数[mysql兼容]

LightDB 从23.4版本开始支持 quarter 函数。 简介 quarter 函数用来确定日期对应的季度&#xff0c; 如 ‘20231204’ 对应12月&#xff0c;也就是第四季度。 下面为mysql8.0中描述 Returns the quarter of the year for date, in the range 1 to 4, or NULL if date is NUL…

二叉树题目:二叉树的完全性检验

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树的完全性检验 出处&#xff1a;958. 二叉树的完全性检验 难度 5 级 题目描述 要求 给定一个二叉树的根结点 root \texttt{root} root&…

C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)

目录 一、创建Graphics对象 1.创建Pen对象 2.创建Brush对象 &#xff08;1&#xff09;SolidBrush类 &#xff08;2&#xff09;HatchBrush类 ​​​​​​​&#xff08;3&#xff09;LinerGradientBrush类 用户界面上的窗体和控件非常有用&#xff0c;且引人注目&#…

销售人员一定要知道的6种获取电话号码的方法

对于销售来说&#xff0c;电话销售是必须要知道的销售方法&#xff0c;也是销售生涯中的必经之路。最开始我们并不清楚这么电话是从哪里来的&#xff0c;也不清楚是通过哪些方法渠道获取。那么今天就来分享给各位销售人员获取客户电话号码的方法。 1.打印自己的名片&#xff0…

CSS实现一些小功能

1.信封边框的实现 1.1 使用背景渐变 <!DOCTYPE html><html><head><meta charset"UTF-8"><title></title><style type"text/css">.uu {width: 200px;height: 70px;padding:1em;border: 1em solid transparent;…

【objectarx.net】加载线型文件

/// <summary> /// 加载指定线型文件中的指定名称的线型 /// </summary> /// <param name"lineTypName">线型名</param> /// <param name"db"></param> /// <param name"lineTypeFile">线型文件</…

一文读懂 ChatGPT 工作原理

生成式 AI 是如何工作的 生成式 AI 是目前最热门的技术之一&#xff0c;ChatGPT 等应用的出现使人们对于如何在各种领域中应用生成式 AI 有了许多新的思考。 但这些领域的从业者并不都具备 AI 相关的知识背景。所以我们制作了这个教程&#xff0c;向无 AI 知识背景的读者介绍…

Temu数据面板:Temu商家必备的数据分析工具

在Temu这个电商平台上&#xff0c;越来越多的商家意识到数据分析的重要性。数据分析可以帮助商家更好地了解店铺的运营情况&#xff0c;从而制定更有效的运营策略&#xff0c;提高销售业绩。而在这个过程中&#xff0c;Temu数据面板成为了一个不可或缺的工具。 先给大家推荐一款…

【ElementUI】一行代码解决图片预览

【ElementUI】一行代码解决图片预览 只需要在图片标签上加入:preview-src-list 只需要在图片标签上加入:preview-src-list 完整代码如下&#xff1a; <el-table-column label"封面" align"center" prop"cover" :sort-orders"[descend…

IDEA 保存自动ESLint格式化

作为后端人员&#xff0c;偶尔修改一下前端代码&#xff0c;ESLint总提示格式不正确。有没有什么办法实现自动格式化呢&#xff1f; 安装插件Save Actions Tool 设置中搜索eslint 勾选 Run eslint --fix on save 这样以后&#xff0c;只要保存文件就会自动格式化了。 参考 …

“探秘某音开放平台接口:掌握潮流电商的秘密武器“

一、概述 接口是某音开放平台提供的一套API接口&#xff0c;开发者可以通过这些接口快速构建与某音平台的数据交互能力。本文将详细介绍某音接口的使用方法、技术细节以及注意事项。 二、接口地址 某音接口的地址为&#xff1a;https://open.douyin.com/platform/doc/standa…

java语言中受检异常和非受检异常的区别是什么?

在Java语言中&#xff0c;异常可以分为两种类型&#xff1a;受检异常&#xff08;Checked Exception&#xff09;和非受检异常&#xff08;Unchecked Exception&#xff09;。 受检异常&#xff08;Checked Exception&#xff09;&#xff1a;这是编译器要求必须进行处理的异常…

Redis——Redis简介

Redis是目前最流行的键值对&#xff08;key-value&#xff09;数据库&#xff0c;以出色的性能著称&#xff0c;官方提供的数据是可以支持100000以上的QPS。Redis具有高性能的主要原因如下&#xff1a; Redis是基于内存的存储数据库&#xff0c;绝大部分的命令处理只是纯粹的内…

BabySpartan:对non-uniform computation的Lasso-based SNARK

1. 引言 前序博客有&#xff1a; Lasso、Jolt 以及 Lookup Singularity——Part 1Lasso、Jolt 以及 Lookup Singularity——Part 2深入了解LassoJoltmultilinear多项式承诺方案benchmark对比 见Srinath Setty和Justin Thaler 2023年论文《BabySpartan: Lasso-based SNARK fo…

协同过滤算法:个性化推荐的艺术与科学

目录 引言&#xff1a; 一、协同过滤算法的基本原理 二、协同过滤算法的应用领域 三、协同过滤算法的优缺点 四、协同过滤算法的未来发展方向 五、结论 引言&#xff1a; 在当今数字化时代&#xff0c;信息过载成为了一个普遍的问题。为了帮助人们更好地发现符合个性化需…

HTTP 和 HTTPS的区别

一、HTTP 1.明文传输&#xff0c;不安全 2.默认端口号&#xff1a;80 3.TCP三次握手即可 二、HTTPS 1.加密传输&#xff0c;更安全(在HTTP层与TCP层之间加上了SSL/TTL安全协议) SSL和TTL是在不同时期的两种叫法&#xff0c;含义相同。 2.默认端口号&#xff1a;443 3.TCP三…

【广州华锐互动】风电场检修VR情景模拟提供接近真实的实操体验

风电场检修VR情景模拟系统由广州华锐互动开发&#xff0c;这是一种新兴的培训方式&#xff0c;它通过虚拟现实技术将风力发电场全范围进行1:1仿真建模还原&#xff0c;模拟监视风力发电场各种运行工况下的运行参数和指标&#xff0c;同时可进行升压站系统的巡视&#xff0c;倒闸…

Windows系列:Zabbix agent一键部署-windows版本(windows 安装zabbix客户端安装、bat文件修改文件内容)

Zabbix agent一键部署-windows版本&#xff08;windows 安装zabbix客户端安装、bat文件修改文件内容&#xff09; 一. Zabbix agent一键部署-windows版本二. windows 安装zabbix客户端安装1.下载安装zabbix agent2.配置zabbix agent2.1 修改配置文件2.2 将zabbix agent安装为wi…