力扣 216. 组合总和 III

news2024/10/6 14:36:43

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

 

 C++题解:由 C\binom{k}{9} 进入for循环进行回溯,到 C\binom{k-1}{8}......,以此类推。

递归法:

  • 确定递归函数参数:要求集合的个数k,目标和n,下一层for循环搜索的起始位置startInd,已有的元素总和sum;
  • 确定终止条件:当已搜索到k个元素时,条件终止。如果k个元素和sum等于目标和n,保存数组;
  • 单层递归逻辑:当sum加上新元素i大于目标和时,跳出循环(剪枝);保存当前数据,并进行下一步递归,递归结束时进行回溯,保存的数据弹出path。
class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(int k, int n, int startInd, int sum) {
        if(path.size() == k) {
            if(sum == n) res.push_back(path);  //满足条件保存结果
            return ;
        }
        for(int i = startInd; i <= 9 - (k - path.size()) + 1; i++) {  //剪枝
            if(sum + i > n) break;  //剪枝
            path.push_back(i);
            backtracking(k, n, i+1, sum+i);   //i和sum这里其实也是回溯
            path.pop_back();       //回溯
        }
        return;
    }
    vector<vector<int>> combinationSum3(int k, int n) {
        backtracking(k, n, 1, 0);
        return res;
    }
};

果然昨天做了一道回溯算法题后,今天这道就容易多了。

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

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

相关文章

ES6模块化的基本语法

ES6模块化的基本语法 1、默认导出与默认导入2、按需导出和按需导入3、直接导入并执行模块中的代码 1、默认导出与默认导入 默认导出的语法 export default 默认导出的成员示例 let n110let n220function show(){}export default{n1,show }默认导入的语法 import 接收名称 f…

基于Java学生事务处理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

vue2【监听器】

目录 1&#xff1a;监听器的作用 2&#xff1a;语法格式 3&#xff1a;示例 4&#xff1a;应用场景 4.1&#xff1a;axios发送请求 4.2&#xff1a;JQuery发送请求 5&#xff1a;监听器的格式&#xff1a; 5.1&#xff1a;函数格式的监听器&#xff1a; 缺点一&#x…

MySQL数据库、表、用户的基础操作

根据两个实例进行练习 1&#xff09;创建库 mysql> create database Market; Query OK, 1 row affected (0.00 sec) 2&#xff09;创建表 mysql> create table customers (-> c_num int(11) PRIMARY KEY AUTO_INCREMENT,-> c_name varchar(50) ,-> c_contact…

F103串口和DMA配合使用总结

常规的串口使用是这样的&#xff1a;先配置基本的GPIO和串口&#xff0c;然后调用发送和接收函数&#xff0c;如果需要中断&#xff0c;可以根据情况配置发送中断和接收中断。 比如&#xff1a; //PB10:UT3_TX //PB11:UT3_RX void lcd_usart_init(uint32_t bound) {//GPIO端口…

Linux内核模块开发 第 7 章

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09;源 LKMPG 7 /proc 文件系统 Linux 中有一个额外的机制——/proc file system&#xff0c;用于支持内核…

Linux学习之分区挂载

VMWare 16虚拟机添加一块硬盘 点击“硬盘&#xff08;SCSI&#xff09;”&#xff0c;在弹出来的窗口点击“硬盘&#xff08;SCSI&#xff09;”之后添加。 选择硬盘之后&#xff0c;点击下一步。 虚拟磁盘类型&#xff0c;就选择默认的SCSI(S)。 选择“创建新虚拟机磁盘…

SpringBoot整合minio笔记

SpringBoot整合minio笔记 物料准备&#xff1a; 1.引入minio以及 spring-file-storage 相关依赖 2.配置yml 3.配置 FileRecorder实现类 4.启用EnableFileStorage注解 5.测试上传 引入minio以及 spring-file-storage 相关依赖 minio是一个OSS云存储服务&#xff0c;mini…

web 页面布局:(二)float 浮动布局

web 页面布局&#xff1a;&#xff08;二&#xff09;float 浮动布局 页面宽度使用样式居中 使用浮动浮动元素外的剩余空间使用浮动的高度细节 页面宽度 在很早很早的时期&#xff0c;各大网站的底部都会有这么类似的一句声明&#xff1a;最佳分辨率 sss x ttt&#xff0c;比如…

web前端设计师的具体职责

web前端设计师的具体职责 web前端设计师负责将设计图转化成页面&#xff0c;并实现页面动态效果&#xff0c;并配合后端程序员嵌入数据。下面是学习啦小编整理的web前端设计师的具体职责。 web前端设计师的具体职责1 职责&#xff1a; 1.负责网站页面的整体美工创意、设计与…

redis 笔记

文章学习参考&#xff1a;Redis 教程 | 菜鸟教程 (runoob.com) 1、安装并执行 1.1 安装 下载地址&#xff1a;https://github.com/tporadowski/redis/releases 点击下面的压缩文件下载&#xff0c;版本不一定是这个。 1.2 执行redis 打开cmd窗口&#xff0c;跳转到redis解压的…

void QWidget::stackUnder(QWidget *w)

Places the widget under w in the parent widgets stack. To make this work, the widget itself and w must be siblings. 在父窗口的栈中&#xff0c;放置widget在w下面。 为了生效&#xff0c;widget和w必须是兄弟。 什么意思呢&#xff1f; widget和w的父窗口必须是同一个…

计算机与网络发展的7个阶段【图解TCP/IP(笔记一)】

文章目录 计算机与网络发展的7个阶段批处理分时系统计算机之间的通信计算机网络的产生互联网的普及以互联网技术为中心的时代从“单纯建立连接”到“安全建立连接” 计算机与网络发展的7个阶段 批处理 所谓批处理&#xff0c;是指事先将用户程序和数据装入卡带或磁带&#xf…

从小白到大神:可能是最全的前端学习大纲

导读 俗话说得好&#xff1a;“不谋全局者不足谋一域。”前端开发是一个广泛而复杂的领域&#xff0c;需要掌握多方面的知识。 在之前的文章中&#xff0c;我们介绍了计算机领域的各种方向&#xff0c;以及前端在公司中的地位和日常工作内容&#xff0c;相信你对前端开发已经…

冰冰学习笔记:初识网络

欢迎各位大佬光临本文章&#xff01;&#xff01;&#xff01; 还请各位大佬提出宝贵的意见&#xff0c;如发现文章错误请联系冰冰&#xff0c;冰冰一定会虚心接受&#xff0c;及时改正。 本系列文章为冰冰学习编程的学习笔记&#xff0c;如果对您也有帮助&#xff0c;还请各位…

剑指offer30天打卡活动

文章目录 Day1: 用两个栈实现队列包含min函数的栈 一、用两个栈实现队列OJ链接 本题思路&#xff1a;定义两个栈&#xff0c;&#xff08;Enqueue&#xff09;是用来存储入队的元素&#xff0c;&#xff08;Cnqueue&#xff09;用来出队的&#xff0c;那么如何进行操作呢&am…

Win10 显示WLAN不安全,并且链路速度54/54 (Mbps),通过K3C路由器修改协议解决,无线网卡连接速度只有54Mbps

省流 换个安全协议就好了。 使用有线等同隐私(WEP)或临时密钥完整性协议(TKIP)加密配置时&#xff0c;客户端设备的WiFi数据传输速率不会超过54Mbps&#xff0c; 问题 我用的是K3C路由器&#xff0c;今天跑百度网盘感觉很奇怪&#xff0c;突然就只有10MB/s了&#xff0c;感觉…

盖子的c++小课堂——第十八讲:栈

前言 OK呀&#xff0c;说到做到&#xff0c;我们的粉丝们也是很给力呀&#xff0c;终于破了400粉~~ 我太感动了aaaaaaaaaaaaaaaaaaaaaaaa 话不多说&#xff0c;我们直接开始&#xff01; 栈的定义 栈&#xff0c;是什么&#xff1f; 例1-弹夹 你见过手枪吗&#xff1f;它…

安装Node.js和创建Vue-cli工程

NodeJs中文网&#xff1a;下载 | Node.js (nodejs.org) 注意事项&#xff1a; 最好下载Node16版本&#xff0c;除非你后续使用的Vue-cli版本比较高&#xff0c;像我使用的Vue-cli3和4.1.1版本去创建工程&#xff0c;然后run运行会报错Error: error:0308010C:digital envelope …

echarts自定义legend样式

转载自&#xff1a; https://blog.csdn.net/changyana/article/details/126281275 目标样式&#xff1a; 使用legend中的formatter以及textStyle.rich legend: { // 对图形的解释部分orient: vertical,right: 10,y: center,icon: circle, // 添加formatter: function(name)…