代码随想录 day25

文章目录

  • 回溯
    • 216.组合总和 |||
      • 思路
      • 代码
    • 17.电话号码的字母组合
      • 思路
      • 代码

回溯

216.组合总和 |||

216.组合总和 |||

思路

和组合相同,稍微改变了恢复现场和判断结束的方法

代码

class Solution {
private:vector<vector<int>> ans;vector<int> temp;int sum = 0;void dfs(int now,int k,int n){   if(sum==n&&k==0) {ans.push_back(temp);return;}if(9-now+1<k||sum>n) return;for(int i=now;i<=9;i++){sum+=i;temp.push_back(i);dfs(i+1,k-1,n);sum-=i;temp.pop_back();}}
public:vector<vector<int>> combinationSum3(int k, int n) {dfs(1,k,n);return ans;}
};

17.电话号码的字母组合

力扣题目链接

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

17.电话号码的字母组合

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

思路

组合问题考虑回溯,用map定义字典和对应字母之间的映射,这里因为数较少使用的是数组,用map也可以,其余的和组合差别不大

代码

class Solution {string map[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};vector<string> ans;string temp = "";string dig;void dfs(int now){   if(now==dig.size()) {ans.push_back(temp);return;}//if(n-now+1<k) return;for(int i=0;i<map[dig[now]-'0'].size();i++){temp.push_back(map[dig[now]-'0'][i]);dfs(now+1);temp.pop_back();}}
public:vector<string> letterCombinations(string digits) {if(!digits.empty()){dig = digits;dfs(0);}return ans;}
};

也可以传引用不用全局变量

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

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

相关文章

MySQL EXISTS 语句和IN语句有啥区别

在 MySQL 中&#xff0c;EXISTS 和 IN 是用于子查询的两种不同方式&#xff0c;它们有一些区别&#xff1a; 1. **IN 语句**&#xff1a; - IN 子句用于在 WHERE 子句中指定多个值&#xff0c;并检查主查询中的某个列是否在子查询返回的结果集中。 - IN 子句适用于子查询…

npm发布包至私有仓库

前提&#xff1a;使用verdaccio在服务器搭建好了私有仓库 1、登录至私服 npm adduser --registryhttp://xxx.xxx.x.xx:48732、发布npm包到私有仓库 修改package.json中的相关信息后 #cd 项目目录 npm publish --registryhttp://xxx.xxx.x.xx:4873登录至私服查看 3、在项目中…

性能分析-CPU知识

目录 CPU知识 cpu组成 查看cpu信息&#xff1a; top命令中 cpu相关&#xff1a; top命令看到系统负载&#xff1a; CPU负载 IO负载 上下文&#xff1a; CPU的寄存器和程序计数器----在cpu的控制器中 实战演示分析 top命令分析 arthas工具 进程上下文切换高的问题分析…

《MATLAB科研绘图与学术图表绘制从入门到精通》

解锁MATLAB科研绘图魅力&#xff0c;让数据可视化成为你的科研利器&#xff01; 1.零基础快速入门&#xff1a;软件操作实战案例图文、代码结合讲解&#xff0c;从入门到精通快速高效。 2.多种科研绘图方法&#xff1a;科研绘图基础变量图形极坐标图形3D图形地理信息可视化等&a…

redis和ElasticSearch和MongoDB应用场景,如何选择

Redis、Elasticsearch和MongoDB是三种不同类型的数据库&#xff0c;它们有各自的应用场景和特点。在选择时&#xff0c;需要考虑以下几个方面&#xff1a; 数据读写模式&#xff1a;Redis是基于内存的键值存储数据库&#xff0c;适用于高速读写场景&#xff0c;如缓存、计数器等…

pdf操作器(图片转文字、PDF转word、PDF拆分、图片jpg、png互转)

pdf操作器&#xff08;不用联网图片转文字、PDF转word、PDF拆分、图片jpg、png互转&#xff09;介绍目前该软件实现了以下功能 pdf转wordpdf拆分图片&#xff0c;图片导出在桌面的一个文件夹里图片合并为pdf压缩、转换图片格式&#xff08;jpg和png&#xff09;OCR图片转文字&…

【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

TCP链接 1.三次挥手2.四次挥手3.拓展说说 TCP 2次握手行不行&#xff1f;为什么要3次 1.三次挥手 1&#xff09;第一次握手&#xff1a;建立连接时&#xff0c;客户端向服务器发送SYN包&#xff08;seqx&#xff09;&#xff0c;请求建立连接&#xff0c;等待确认 2&#xff09…

LeetCode 670. 最大交换

相关思路 把num放到字符数组中&#xff0c;遍历所有交换两个数字的num&#xff0c;并且取出最大值。 相关代码 class Solution {public int maximumSwap(int num) {String s ""num;char a[] s.toCharArray();int maxnum;for(int i0;i<s.length();i){for(int …

C++中的vector与C语言中的数组的区别

C中的vector和C语言中的数组在很多方面都有所不同&#xff0c;以下是它们之间的一些主要区别&#xff1a; 大小可变性&#xff1a; vector是C标准模板库&#xff08;STL&#xff09;提供的动态数组容器&#xff0c;它的大小可以动态增长或减少。这意味着你可以在运行时添加或删…

【AIGC】HF-Mirror 使用说明(MacOS 版)

今天这篇文章主要是记录 HF-Mirror 的使用过程&#xff0c;官网上提供了 Linux 和 Windows 的使用方式。本人作为 MacOS 用户也将自己的使用办法记录一下&#xff0c;希望能够帮助到其他人。 HF-Mirror 是什么&#xff1f; HF-Mirror 是大神 padeoe 开源的 huggingface 镜像站…

CVE-2023-2928 DedeCMS 文件包含漏洞getshell 漏洞分析

DedeCMS&#xff08;也称为织梦CMS&#xff09;是一款基于PHPMySQL的开源内容管理系统。 在 DedeCMS 5.7.106 及之前的版本中发现一个漏洞。它已被宣布为关键。受此漏洞影响的是未知功能的文件uploads/dede/article_allowurl_edit.php。对参数 allurls 的操作会导致代码注入。…

解决前端性能瓶颈:高效处理大量数据渲染与复杂交互的策略与优化方法

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

第十四届蓝桥杯c++组B组做题笔记

A题&#xff1a;日期统计&#xff1a; 【问题描述】 小蓝现在有一个长度为 100 的数组&#xff0c;数组中的每个元素的值都在 0 到 9 的范围之内。数组中的元素从左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 …

基本乐理(识别和构成和弦一)阅读记录一

和弦、 和弦是非常好听的&#xff0c;顾名思义。我现在阅读的书籍是《基本乐理》- 作者李重光&#xff0c;直接跳跃到第十九章进行阅读。 理解和弦 书中介绍对理解和弦的前提要素是要对音程要掌握。 如&#xff1a;大三度 如&#xff1a;小三度 如&#xff1a;纯五度 音程 音…

如何使用Java和RabbitMQ实现延迟队列?

前言 今天我们使用Java和RabbitMQ实现消息队列的延迟功能。 前期准备&#xff0c;需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列&#xff1f;-CSDN博客 今天讲的是依赖RabbitMQ的延迟插件实现…

Python---Numpy线性代数

1.数组和矩阵操作&#xff1a; 创建数组和矩阵&#xff1a;np.array, np.matrix 基本的数组操作&#xff1a;形状修改、大小调整、转置等 import numpy as np# 创建一个 2x3 的数组 A np.array([[1, 2, 3], [4, 5, 6]]) print("数组 A:\n", A)# 将数组 A 转换为矩阵…

SpringBoot项目打包和部署

目录 1.插件 2.打包 3.运行 1.插件 此插件会在pom中自动添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></bu…

HTML:HTML事件汇总

html事件是用户和页面交互的一些效果 &#xff0c;用户通过点击&#xff0c;触摸等等方式更新数据&#xff0c;页面在加载完成之后的交互效果就需要通过触发事件来完成&#xff0c;事件大概分为&#xff0c;鼠标事件&#xff0c;窗口事件&#xff0c;表单事件&#xff0c;键盘事…

Golang 创建一个简单的内存池

内存池主要作用是减少内存分配和释放的开销&#xff0c;提高程序的性能和效率。内存池通过预先分配一块较大的内存区域&#xff0c;然后将这块区域分割成多个小块&#xff0c;用于存储特定类型的数据。这样&#xff0c;当程序需要分配内存时&#xff0c;可以直接从内存池中获取…

深入了解 JavaScript 中的 Promise 相关方法:all、race 和 allSettled

在 JavaScript 开发中&#xff0c;处理异步操作是很常见的需求。随着 ECMAScript 6&#xff08;ES6&#xff09;的引入&#xff0c;Promise 成为了处理异步操作的主要方式之一。而在 Promise 的方法中&#xff0c;Promise.all()、Promise.race() 和 Promise.allSettled() 是一些…