【算法刷题day25】Leetcode:216.组合总和III 17.电话号码的字母组合

216.组合总和III

文档链接:[代码随想录]
题目链接:216.组合总和III

题目:
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
只使用数字1到9
每个数字 最多使用一次
返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。
注意:
跟前面的一样,还挺简单的

class Solution {
public:vector<vector<int>> combinationSum3(int k, int n) {a(k, n, 1);return result;}
private:vector<vector<int>> result;vector<int> path;int sum = 0;void a(int k,int n,int j){if(path.size() == k && sum == n){result.push_back(path);}for(int i = j;i <= 9; i++){path.push_back(i);sum += i;a(k, n, i + 1);sum -= i;path.pop_back();}}
};

17.电话号码的字母组合

文档链接:[代码随想录]
题目链接:17.电话号码的字母组合

题目:
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
注意:
1.注意回溯过程中的深度和分支都代表什么!

class Solution {
private:const string letterMap[10] = {"", // 0"", // 1"abc", // 2"def", // 3"ghi", // 4"jkl", // 5"mno", // 6"pqrs", // 7"tuv", // 8"wxyz", // 9};vector<string> result;string s;void backtracking(string digits, int index){if(index == digits.size()){result.push_back(s);return ;}int digit = digits[index] - '0';string letters = letterMap[digit];for(int i = 0; i < letters.size(); i++){s.push_back(letters[i]);backtracking(digits, index + 1);s.pop_back();}}
public:vector<string> letterCombinations(string digits) {if (digits.size() == 0) {return result;}backtracking(digits, 0);return result;}
};

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

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

相关文章

关于DDD设计模式的各种疑问:什么是DDD架构?

关于DDD架构中的各种概念&#xff0c;请先参考一篇文章&#xff1a;什么是DDD&#xff08;领域驱动设计&#xff09;&#xff1f; 这是我见过最容易理解的一篇关于DDD 的文章了 下面是关于这个架构的各种说明。 1 DDD和其他架构模式的区别&#xff08;建议看完文章再看此问题…

C语言程序设计每日一练(4)

完全平方数 首先&#xff0c;我们需要明确什么是完全平方数。完全平方数是指一个整数&#xff0c;它可以表示为另一个整数的平方。例如&#xff0c;1、4、9、16等都是完全平方数&#xff0c;因为它们分别是1、2、3、4的平方。 现在&#xff0c;让我们回到这个问题。我们知道这…

LeetCode刷题总结 | 图论3—并查集

并查集理论基础 1.背景 首先要知道并查集可以解决什么问题呢&#xff1f; 并查集常用来解决连通性问题。大白话就是当我们需要判断两个元素是否在同一个集合里的时候&#xff0c;我们就要想到用并查集。 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判…

安装GPT 学术优化 (GPT Academic)@FreeBSD

GPT 学术优化 (GPT Academic)是一个非常棒的项目 可以帮助我们完成中科院的一些日常工作。 官网&#xff1a;GitHub - binary-husky/gpt_academic: 为GPT/GLM等LLM大语言模型提供实用化交互接口&#xff0c;特别优化论文阅读/润色/写作体验&#xff0c;模块化设计&#xff0c;…

【Linux系列】Ctrl + R 的使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

EelasticSearch的docker安装-----》es客户端使用!!!

1.Docker安装 docker run -d --name es7 -e ES_JAVA_POTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node" -v /opt/es7/data/:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 elasticsearch:7.14.02.客户端UI工具&#xff0c;Edge浏览器…

STM32之HAL开发——CubeMX串行Flash文件系统源码讲解

前提 本次源码讲解是根据FatFS文件系统使用的流程进行 注册设备函数 uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path) {return FATFS_LinkDriverEx(drv, path, 0); } ------------------------------------------------------------------------------------…

MySQL学习-非事务相关的六大日志、InnoDB的三大特性以及主从复制架构

一. 六大日志 慢查询日志:记录所有执行时间超过long_query_time的查询&#xff0c;方便定位并优化。 # 查询当前慢查询日志状态 SHOW VARIABLES LIKE slow_query_log; #启用慢查询日志 SET GLOBAL slow_query_log ON; #设置慢查询文件位置 SET GLOBAL slow_query_log_file …

Linux(磁盘管理与文件系统)

目录 1. 磁盘基础 1.1 磁盘结构 1.2 MBR 1.3 磁盘分区结构 2. 文件系统类型 2.1 XFS文件系统 2.2 SWAP 2.3 fdisk命令 2.4 创建新硬盘 3.创建文件系统 3.1 mkfs 3.2 挂载、卸载文件系统 3.3 查看磁盘使用情况 1. 磁盘基础 1.1 磁盘结构 磁盘的物理结构 盘片:硬…

工业相机曝光、增益、自动曝光、自动增益参数功能介绍和设置指南

工业相机曝光、增益、自动曝光、自动增益参数功能介绍和设置指南 工业相机基本参数介绍工业相机曝光、增益、亮度等介绍工业相机如何设置曝光参数工业相机如何设置增益参数 工业相机基本参数介绍 在使用工业相机时&#xff0c;曝光、增益、亮度和信噪比之间有密切的相互关系。…

大数据:【学习笔记系列】flink和spark的区别

Apache Flink 和 Apache Spark 是两种流行的大数据处理框架&#xff0c;它们在架构、性能和使用场景等方面都有各自的特点和优势。下面是对 Flink 和 Spark 主要区别的详细对比&#xff1a; 1. 处理方式&#xff1a;流处理 vs 微批处理 Apache Flink&#xff1a; Flink 被设计…

35. UE5 RPG制作火球术技能

接下来&#xff0c;我们将制作技能了&#xff0c;总算迈进了一大步。首先回顾一下之前是如何实现技能触发的&#xff0c;然后再进入正题。 如果想实现我之前的触发方式的&#xff0c;请看此栏目的31-33篇文章&#xff0c;讲解了实现逻辑&#xff0c;这里总结一下&#xff1a; …

微服务拆分:打造高性能、高扩展的未来架构

目录 一、微服务介绍 二、主链路规划 2.1 业务完整性 2.2 转化率重因子 2.3 流量端占比 2.4 现金水库 三、如何识别主链路 3.1 导流端 3.2 转化端 3.3 漏斗中部&#xff1a;订单转化 3.4 漏斗底部&#xff1a;下单 四、总结 一、微服务介绍 单体应用将所有的功能都…

微服务架构与Dubbo

一、微服务架构 微服务架构是一种架构概念&#xff0c;旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。 分布式系统式若干独立系统的集合&#xff0c;但是用户使用起来好像是在使用一套系统。 和微服务对应的是单体式开发&#xff0c;即所有的功能打包在一个WAR…

静默拷贝U盘里的ppt/pptx

专门用于拷贝老师讲课的课件&#xff01;&#xff01;&#xff01;本程序需要编译&#xff0c;运行后无界面&#xff0c;如果需要关闭的话&#xff0c;请从任务管理器里关闭 附上代码&#xff1a; import os import shutil import time import psutil# 获取本机硬盘盘符列表 …

搭建Zookeeper完全分布式集群(CentOS 9 )

ZooKeeper是一个开源的分布式协调服务&#xff0c;它为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;并且是分布式应用保证数据一致性的解决方案。该项目由雅虎公司创建&#xff0c;是Google Chubby的开源实现。 分布式应用可以基于ZooKeeper实现诸如数据发布/订阅…

Vue的生命周期的详解

Vue的生命周期是每个使用Vue框架的前端人员都需要掌握的知识&#xff0c;以此作为记录。 Vue的生命周期就是vue实例从创建到销毁的全过程&#xff0c;也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期&#xff0c;也就是从开始创建、初始化数据、编译…

算法|最大堆、最小堆和堆排序的实现(JavaScript)

一些概念 堆&#xff1a;特殊的完全二叉树&#xff0c;具有特定性质的完全二叉树。大根堆&#xff1a;父节点 > 子节点小根堆&#xff1a;父节点 < 子节点 二叉堆也属于完全二叉树&#xff0c;所以可以用数组表示。 若下标从1开始&#xff0c;左节点为 2*i &#xff0…

树莓派4B+Debian(Raspbian)+开机自启动Python文件

非系统全面的教程&#xff0c;只是记录操作过程中的问题和解决方案。 说明1&#xff1a;树莓派的不同版本&#xff0c;要查看CPU的位数、内存大小&#xff1b;从而确定安装的raspbian的对应版本 若是对应64位的OS&#xff0c;安装成了32位的OS&#xff0c;可能会对系统中安装…

ChatGPT助手:写作无忧

ChatGPT无限次数:点击直达 ChatGPT助手&#xff1a;写作无忧 在当今信息爆炸的时代&#xff0c;写作已经成为了各行各业不可或缺的技能。无论是学术论文、技术博客还是市场推广文案&#xff0c;文字的质量往往决定了一篇作品的成败。然而&#xff0c;对于许多人来说&#xff0…