力扣 39. 组合总和

news2024/11/25 21:49:34

题目来源:https://leetcode.cn/problems/combination-sum/description/

 

C++题解: 递归法。递归前对数组进行有序排序,可方便后续剪枝操作。

  • 递归函数参数:定义两个全局变量,二维数组result存放结果集,数组path存放符合条件的结果。参数为集合candidates,和目标值target,已有元素和sum,及开始遍历的第ind个元素(注意,遍历时可以从ind开始,不用+1);
  • 递归终止条件:当sum大于target或sum等于target两种情况;
  • 单层递归逻辑:更新sum值进行回溯。
class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(vector<int> candidates, int target, int sum, int ind) {
        if(sum > target) return;
        if(sum == target) {res.push_back(path); return;}
        for(int i = ind; i < candidates.size(); i++) {
            if(sum + candidates[i] > target) break;
            path.push_back(candidates[i]);
            backtracking(candidates, target, sum + candidates[i], i);
            path.pop_back();
        }
        return;
    }
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        sort(candidates.begin(), candidates.end());
        if(candidates[0] > target) return res;
        backtracking(candidates, target, 0, 0);
        return res;
    }
};

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

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

相关文章

当使用POI打开Excel文件遇到out of memory时该如何处理?

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 当我们开发处理Excel文件时&#xff0c;Apache POI 是许多人首选的工具。但是&#xff…

ssh Permission denied, please try again

Permission denied, please try again 修改 vi /etc/sshd_config 最后重启配置或者重启板子&#xff0c;重新ssh连接

优化springboot

介绍 在SpringBoot的Web项目中&#xff0c;默认采用的是内置Tomcat&#xff0c;当然也可以配置支持内置的jetty&#xff0c;内置有什么好处呢&#xff1f; 1. 方便微服务部署。 2. 方便项目启动&#xff0c;不需要下载Tomcat或者Jetty 针对目前的容器优化&#xff0c;目前来…

Dual In-Line Package(双列直插式封装)

DIP封装示意图 DIP的详细介绍&#xff1a; 1.封装形式&#xff1a;DIP是一种插件式封装&#xff0c;它由一个狭长的塑料或陶瓷封装体组成&#xff0c;具有在两侧排列的引脚。引脚通常是分布均匀的&#xff0c;并以一定的间隔排列&#xff0c;以便与插座或印刷电路板上的插孔对…

vue 连载软件大陆 vue之新手村,vue创建运行指导(如:vue脚手架,创建启动项目,配置等)

第一章 ’vue功法启动‘ 宇宙之间&#xff0c;开天辟地&#xff0c;从无到有&#xff0c;有一颗蔚蓝色的星球&#xff0c;名为软件大陆&#xff0c;如今大陆上有着众多老牌家族势力的诞生,如&#xff1a;c家族、c家族、java家族、.net家族、等&#xff0c; 而我们今天要说的是…

Vue + electron 构建桌面应用程序

文章目录 需求分析解决 需求 使用Vue.js构建桌面应用程序 分析 选择一个Vue.js框架&#xff1a;选择一个适合你的Vue.js框架。推荐使用Electron&#xff0c;因为它是最流行的桌面应用程序框架之一&#xff0c;而且与Vue.js非常兼容。还有其他框架&#xff0c;如 Proton Native…

【C语言趣味教程】第一章:你好, 世界! 「热门 C 语言专栏《维生素C语言》2023 全新重制」

&#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是一套 C 语言趣味教学专栏&#xff0c;目前正在火热连载中&#xff0c;欢迎猛戳订阅&#x…

SQL注入第三章节数据类型与提交方式

SQL注入第三章节数据类型与提交方式 3.1 SQL注入之数据类型 &#xff08;1&#xff09;数字型注入点 许多网页链接有类似的结构 http://xxx.com/users.php?id1。基于此种形式的注入&#xff0c;一般被叫做数字型注入点&#xff0c;缘由是其注入点 id 类型为数字&#xff0c…

02、Nginx目录结构与基本运行原理

一、目录&#xff1a; Nginx一般安装在/usr/local/nginx目录下&#xff08;安装时–prefix可指定安装目录&#xff09; conf #配置文件&#xff5c;-nginx.conf #主配置文件&#xff5c;-其他配置文件 #可通过那个include关键字&#xff0c;引入到了nginx.…

Redis(主从复制、哨兵模式、集群)概述及部署

Redis&#xff08;主从复制、哨兵模式、集群&#xff09;概述及部署 一、Redis主从复制1、Redis主从复制的概念2、Redis主从复制的作用3、Redis主从复制的流程4、Redis主从复制的搭建 二、Redis 哨兵模式1、哨兵模式的原理2、哨兵模式的作用3、哨兵模式的结构4、哨兵模式的搭建…

【Redisson】Redisson--分布式远程服务(Remote Service)

Redisson系列文章&#xff1a; 【Redisson】Redisson–基础入门【Redisson】Redisson–布隆(Bloom Filter)过滤器【Redisson】Redisson–分布式锁的使用&#xff08;推荐使用&#xff09;【分布式锁】Redisson分布式锁底层原理【Redisson】Redisson–限流器 文章目录 一、Redi…

java--类变量与实例变量--实验设计--村庄种树

目录 设计要求 设计流程图 程序代码 类Village代码 类MainClass代码 可以直接运行的代码 运行结果 类变量与实例变量的区别和类方法与实例方法的区别 idea的详细使用方法 设计要求 编写程序模拟两个村庄共同拥有一片森林&#xff1b;编写一个Village类&#xff0c;该类…

WebDAV之派盘本地个人云+RaiDrive

RaiDrive是一款Windows平台下的网络驱动器软件,可以将云存储、FTP、WebDAV等网络存储设备映射为本地磁盘,方便用户在本地访问、管理和备份云端数据。它支持的存储设备包括Google Drive、Microsoft OneDrive、DropBox、以及FTP、SFTP等等。使用RaiDrive,用户可以在本地用文件…

Java中规模软件开发实训——掌握财务自由的关键!解锁智能家庭记账系统的神奇力量!(家庭记账软件)

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;html css js&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;财务自由&am…

【LeetCode】HOT 100(20)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

LeetCode·每日一题·2679. 矩阵中的和·排序

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/sum-in-a-matrix/solutions/2330084/pai-xu-zhu-shi-chao-ji-xiang-xi-by-xun-g-a3gw/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;…

图书推荐管理系统Python,基于Django和协同过滤算法等实现

一、介绍 图书推荐系统 / 图书管理系统&#xff0c;以Python作为开发语言&#xff0c;基于Django实现&#xff0c;使用协同过滤算法实现对登录用户的图书推荐。 二、效果展示 三、演示视频 视频代码&#xff1a;https://www.yuque.com/ziwu/yygu3z/gq555ph49m9fvrze 四、Dj…

有什么事在Linux上顺理成章,在Windows就令人费解?

Linux与Windows都是十分常见的电脑操作系统&#xff0c;相信大家对它们二者都有所了解&#xff01;在我们的使用过程中&#xff0c;是否有遇到这种情况&#xff0c;在Linux上顺理成章&#xff0c;换到Windows上就令人费解&#xff1f; 文章目录 一、介绍2.1 Linux系统1.2 Wind…

第九十七天学习记录:Linux基础:实用操作Ⅱ

进程管理 进程 程序运行在操作系统中&#xff0c;是被操作系统所管理的。 为管理运行的程序&#xff0c;每一个程序在运行的时候&#xff0c;便被操作系统注册为系统中的一个&#xff1a;进程 并会为每一个进程都分配一个独有的&#xff1a;进程ID&#xff08;进程号&#xf…

机器人动力学与控制学习笔记(十六)——重复控制

十六、重复控制基本原理 16.1 重复控制理论 重复控制方法的目标是设计一个针对周期信号的跟踪控制器或者扰动补偿器&#xff0c;只需基于过去周期的误差信号&#xff0c;除了使用当前控制误差外&#xff0c;还“重复”使用了上一周期的误差&#xff0c;并与当前控制误差叠加在…