力扣 ---组合总和

题目:

给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。

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

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

示例 1:

输入: candidates = [2,3,6,7], target = 7
输出: [[7],[2,2,3]]

示例 2:

输入: candidates = [2,3,5], target = 8
输出: [[2,2,2,2],[2,3,3],[3,5]]

示例 3:

输入: candidates = [2], target = 1
输出: []

示例 4:

输入: candidates = [1], target = 1
输出: [[1]]

示例 5:

输入: candidates = [1], target = 2
输出: [[1,1]]

提示:

  • 1 <= candidates.length <= 30
  • 1 <= candidates[i] <= 200
  • candidate 中的每个元素都是独一无二的。
  • 1 <= target <= 500

直接回溯算法解决这道题:

 vector<vector<int>> re;vector<int> te;void backtrace(int target, vector<int>& candidates, int sum, int start) {// 如果当前相加的sum已经大于目标的target,则直接返回if (sum > target) {return;}// 如果当前的sum等于了target,则把符合条件的数组添加到re的二维数组中,并直接返回if (sum == target) {re.push_back(te);// 这里需要直接返回,而不是让sum=0return;}// 需要注意的是这里的i值不能直接等于0,而是等于start,从而可以保证获取到的数组与前面获取到的数组不同for (int i = start; i < candidates.size(); i++) {te.push_back(candidates[i]);sum += candidates[i];backtrace(target, candidates, sum, i);// 在执行完return以后需要将te中的数据pop出去,然后sum对应减去当前candidates[i]值te.pop_back();sum -= candidates[i];}}vector<vector<int>> combinationSum(vector<int>& candidates, int target) {backtrace(target, candidates, 0, 0);return re;}

 

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

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

相关文章

【Java】maven是什么?

先看一下基本概念: ①Maven 翻译为"专家"&#xff0c;"内行"是跨平台的项目管理工具。 主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。 ②项目构建 项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报…

Matlab 修改图例顺序

对于使用 .m 文件绘制的图片&#xff0c;可以修改程序中图例的顺序来改变图片的图例。如果图片所对应的 .fig 文件已经存在&#xff0c;而且不便修改源程序&#xff0c;则可以通过如下方式来修改图例&#xff1a; step 1: 打开fig文件&#xff0c;然后点击绘图浏览器 step 2&…

PHP超级外链分发源码

源码简介 超级外链工具&#xff0c;是一款在线全自动化发外链的推广工具。使用本工具可免费为网站在线批量增加外链&#xff0c;大大提高外链发布工作效率&#xff0c;是广大草根站长们必备的站长工具。 搭建环境 PHP 5.6 安装教程 上传源码压缩包到网站目录并解压即可 首…

kali 渗透工具 - mestaploit

永恒之蓝漏洞的小知识&#xff1a; 黑客通过改造 永恒之蓝 制作 wannacry 制作病毒入侵高校内网。 mestaploit 攻击永恒之蓝流程&#xff1a; 使用模块 msfconsole配置required 模块参数运行&#xff0c;开始监听主机 msfconsole 主要模块 - 选择使用模块 search ms17_01…

大语言模型RAG vs. 长文本

在学习完大语言模型中最热门的两个概念大语言模型落地的关键技术&#xff1a;RAG和大语言模型上下文窗口初探后&#xff0c;关于RAG和长文本&#xff08;long-context&#xff09;的优劣比较引起了广泛的讨论&#xff0c;本文整理了大语言模型RAG vs. 长文本争论的5种类观点。 …

百度富文本编辑器配置(vue3)

今天分享一下我做的项目里面的一个百度富文本的配置问题&#xff0c;安装配置流程以及如何解决的 1.首先是安装组件 # vue-ueditor-wrap v3 仅支持 Vue 3 npm i vue-ueditor-wrap3.x -S # or yarn add vue-ueditor-wrap3.x 2. 下载 UEditor UEditor 并不支持通过 npm 的方式…

爬虫入狱笔记——xx政府网站公开政策数据

最近在学习爬虫&#xff0c;做个笔记吧 今天爬xx政府网站-政策法规栏目的数据 咱们首先需要找到数据从哪里来&#xff0c;鼠标右键->检查&#xff08;或者快捷键一般为F12&#xff09;检查元素&#xff0c;搜索关键词 eg.【违法案例】 回车&#xff0c; 如果没有的话&am…

模数转换器 SIG5533A 国产平替 CS5533AS,替代 CS5533AS

信格勒微电子的芯片产品已通过行业头部大厂导入验证&#xff0c;深受百万终端客户好评。 而且因为 fully compatible. 板子拿来&#xff0c;换个芯片&#xff0c; 性能更好 。MCU 不用改 c code。 SIG5531A/SIG5532A/SIG5533A/SIG5534A 1.6SPS to 3840SPS 16-bit/24-bit AD…

Java8关于Function接口

Java学习-Function接口 1 函数式接口简介和学习地址2 两种常见的函数式接口2.1 Runnable&#xff1a;执行接口&#xff0c;不接收参数&#xff0c;也无返回结果。2.2 Consumer&#xff1a;作为消费接口&#xff0c;接收一个参数&#xff0c;无返回结果。 3 初识3.1 定义Functio…

数据结构初阶:栈和队列

栈 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。 栈中的数据元素遵守后进先出 LIFO &#xff08; Last In First Out &#xff09;的原则。…

报错:Directory“c:/Gowin/20240325 USB_3/impl/pnr”has null character.

问题说明 将工程从一个电脑拷贝到另外一个电脑&#xff0c;然后工程综合没有问题&#xff0c;布局布线时没有ERROR报出&#xff0c;但是就是不能进行布局布线&#xff0c;如下图&#xff1a; 解决方法&#xff1a; 将拷贝工程文件夹名字中的空格删除&#xff0c;然后重新布局…

构成CNN主要组件思想---BP

方式1&#xff1a;手推写神经元节点的前向、后向计算&#xff08;参数更新&#xff09; import numpy as np_w [0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65] _b [0.35, 0.65] _x [5, 10] _y [0.01, 0.09] lr 0.5def w(index):return _w[index - 1…

昇腾Ascend之npu-smi工具的简单使用

一、参考资料 npu-smi工具 二、npu-smi工具的常用操作 信息查询(info) npu-smi info -t <type> -i <npu_id>查询所有芯片的AI CPU、control CPU和data CPU数量 参数描述-ttype: board, flash, memory, usages, sensors, temp, power, volt, common, health, p…

4/7 QT_day1

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//窗口设置this->setWindowTitle("小黑子(little black son)");this->setWindowIcon(QIcon("D:\\qq文件\\Pitrue\\pictrue\\black.jpg"));this-&g…

HiSilicon352 android9.0 系统显示方向旋转与截屏问题分析

一&#xff0c;系统显示方向 1. 概述 Android的旋转显示&#xff0c;主要运用于广告机。Android的旋转&#xff0c;包括图形UI的旋转、鼠标和遥控器的旋转及媒体旋转。 下图为竖屏UI的绘制坐标系和显示坐标系。 2. 功能说明 方案依据Android原生的旋转原理设计&#xff0c…

MySQL的sql_mode模式简介

前言 今天同事使用数据库时报错,排查问题时发现配置文件里的sql_mode配置被人注释了,所以通过查询资料对这个配置进行了下了解。 介绍 mysql为了支持在不同的环境下运行&#xff0c;允许我们给它设置不同的运行模式&#xff08;sql_mode&#xff09;。 不同的运行模式&#…

跨域问题及解决方案

跨域是指当一个Web页面的脚本&#xff08;如JavaScript&#xff09;试图请求另一个与自身不同源的Web页面资源时&#xff0c;由于浏览器的同源策略限制&#xff0c;导致请求被阻的现象。 同源策略是浏览器为了安全而设置的一种策略&#xff0c;它要求Web页面只能访问与其自身的…

使用tomcat里的API - servlet

一、创建一个新的Maven空项目 首次创建maven项目的时候&#xff0c;会自动从maven网站上下载一些依赖组件&#xff08;这个过程需要保证网络稳定&#xff0c;否则后续打包一些操作会出现一些问题&#xff09; ps:校园网可能会屏蔽一些网站&#xff0c;可能会导致maven的依赖…

Chat2DB

序言 日常开发中&#xff0c;我们可能会用到MyBatis Generator自动生成Entity实体类、DAO接口以及对应的Mapper文件可以减少一部分的冗余代码开发量&#xff0c;随着AI的发展&#xff0c;可以将自然语言转换为SQL语句&#xff0c;例如ChatSQL、阿里的Chat2DB等。 Chat2DB简介…

Stable Diffusion模型基于 TensorFlow 或 PyTorch 训练

安装必要的软件和库&#xff1a; 安装 Python&#xff08;建议使用 Python 3.x 版本&#xff09;。安装 TensorFlow 或 PyTorch&#xff0c;具体版本取决于你的模型是基于哪个框架训练的。安装其他可能需要的依赖&#xff0c;如 NumPy、Matplotlib 等。 获取模型代码和权重&…