算法-回溯篇03-电话号码的字母组合

Costas环参数调优指南:QPSK载波同步中的环路滤波器设计技巧 本文深入解析QPSK载波同步中Costas环的参数调优,特别是环路滤波器的设计技巧。通过分析星座图异常现象,提供从理论计算到MATLAB仿真的实战调优指南,涵盖环路带宽、阻尼系数等关键参数在不同信噪比场景下的选择策略,旨在解决载波同步失锁、性能下降等工程难题。 阅读详情

电话号码的字母组合

力扣题目链接

题目描述

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

解题思路

这道题目做好数字和字母的映射就好了,其他的地方并不是很难。

过程如下:

  • 定义一个map,记录下数字和字母的映射;
  • 每次取第一个数字,遍历该数字对应的所有字母,然后把该数字删除;
  • 这样一层递归就完成了,然后依次递归下去,直到数字全部删除。

题解

class Solution {
public:
    vector<string> ans;
    unordered_map<char, string> um = {
        {'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"}, 
        {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}
    };
    string path;

    void backTracking(string digits){
        if(digits.size() == 0){
            ans.push_back(path);
            return;
        }

        char c = digits[0];
        digits.erase(digits.begin());

        string s = um[c];
        for(int i = 0; i < s.size(); i++){
            path.push_back(s[i]);
            backTracking(digits);
            path.pop_back();
        }

        return;
    }

    vector<string> letterCombinations(string digits) {
        if(digits.size() == 0){
            return ans;
        }
        backTracking(digits);
        return ans;
    }
};

总结

这道题目我这种解法效率很低,应该是因为我使用了unordered_map并且没有剪枝,我在阅读了一些答案的写法,并没有看到明显的复杂度上的区别。

HFSS微带线仿真从零到一:材料参数与求解设置优化指南 在射频电路设计中,微带线仿真涉及电磁场求解与传输线理论,其精度高度依赖材料参数和求解设置。相对介电常数、损耗角正切和导体电导率等参数直接影响特性阻抗与插入损耗,而求解频率、网格划分和参数扫描则决定仿真效率与收敛性。合理设置这些参数可显著提升S参数准确性,避免设计迭代。应用场景包括天线馈线、滤波器和微波互连。本文基于HFSS微带线仿真实践,系统讲解材料选择与参数优化全链路,帮助工程师快速复现可靠模型。 阅读详情

相关推荐

代码复现——SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架

根据《SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs》(《SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架》)论文思路,简单复现代码,以实现SymAgent中的Agent-Planner和Agent-Executor模块。Agent-Planner利用大语言模型的归纳推理能力从知识图谱中提取符号规则,指导高效的问题分解。

qq_60040306的博客 1605

回溯算法学习笔记(一)子集型:电话号码的字母组合,子集,分割回文串

ps:笔记和代码按本人理解整理,重思路

学习记录 997

UniApp实战:5分钟搞定后台持续定位与轨迹实时更新(附完整代码)

本文详细介绍了在UniApp中实现后台持续定位与动态轨迹地图系统的完整方案。针对物流配送、运动健身等场景,文章深入讲解了权限申请、坐标系选择、定位防抖优化、地图轨迹线(polyline)实时绘制等核心步骤,并提供了可复用的完整代码,帮助开发者高效解决App切后台定位停止、轨迹漂移等常见难题。

weixin_29266679的博客 483

回溯算法03-电话号码的字母组合(Java)

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。的字符串,返回所有它能表示的字母组合。

XYX_888的博客 687

数据库和BI工程师面试题

 一.数据库 1.Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? 2.Oracle数据库,有哪几类索引,分别有什么特点? 3.Union与Union All的区别? 4.对游标的理解?游标的分类?使用方法? 5.如何查找和删除表中的重复数据?给出方法或SQL。 6.不借助第三方工具,怎么查看SQL的执行计划? 7.创建索引有哪些需要注意的要点?

web_go_run的专栏 1万+

【2026年华为暑期实习(AI)-4月8日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

答案与解析 1. 相关系数问题 答案:C. 完全负线性相关 解析:相关系数ρ=-1表示X和Y之间存在完全负线性相关关系,所有数据点都严格落在一条斜率为负的直线上。 2. 矩阵秩问题 答案:B. Σ的对角线上非零奇异值的个数 解析:矩阵A的秩等于其奇异值矩阵Σ中非零奇异值的个数,因为U和V都是正交矩阵,不改变矩阵的秩。 3. 条件概率问题 答案:B. 0.5 解析:根据全概率公式和贝叶斯公式计算,P(B)=0.5×0.4+0.3×0.6=0.38,P(A|B)=(0.5×0.4)/0.38≈0.526,最接近

m0_73659489的博客 287

Leetcode 17.电话号码的字母组合

Leetcode--17.电话号码的字母组合

2301_80926085的博客 751

把 300 亿参数的 Qwen3-30B-A3B 塞进 16GB 手机:MoE、mmap 与内存轮转的完整拆解

这篇文章详细拆解了如何在16GB内存手机上运行305亿参数的Qwen3-30B-A3B大模型。作者通过MoE(专家混合)架构、内存映射(mmap)和专用NPU内存(rpcmem)的巧妙结合实现了这一"不可能"的任务。 核心原理在于:MoE模型将庞大的前馈网络拆分为128个专家,每个词只激活8个专家,97%的权重处于闲置状态;通过mmap技术按需加载当前需要的专家权重;同时利用NPU专用内存高效计算关键部分。三个关键开关(GGML_HEXAGON_MOE_PAGING=1、--mmap、GGML_CPU_RE

q742971636的博客 187

算法题 电话号码的字母组合

本文介绍了电话号码字母组合问题的两种解法:回溯法(DFS)和迭代法(BFS)。给定数字2-9的字符串,需返回所有可能的字母组合(参照电话按键映射)。回溯法通过递归生成组合,在达到输入长度时保存结果;迭代法则用队列动态扩展组合。两种方法的时间复杂度均为O(3^N×4^M),其中N和M分别对应3字母和4字母的数字个数。文章详细说明了算法思路、实现代码、复杂度分析以及关键点,并提供了测试用例和常见问题解答,帮助理解如何处理这种组合生成问题。

红血哥 571

《模型轻量化-剪枝蒸馏量化系列》YOLOv5无损剪枝(附源码)

无损剪枝模型到几百kb~

cv君的博客 3万+

彻底解析 DDIC_TYPE_INCONSISTENCY:从 ABAP ST22 连环 Dump 到 SE14 一键修复

听上去像内核级的致命故障,实则更多源于日常运维的细枝末节。只要掌握的排查三板斧,结合严格的变更流程与周期性的字典体检,再严重的 Dump 也能化险为夷。希望本文的案例与步骤能帮助读者在下一次遇到类似问题时,既能快速止血,也能追根溯源,避免重蹈覆辙。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 629

算法力扣刷题记录 六十五【17.电话号码的字母组合】

多个组合中取元素

danaaaa的博客 1101

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

力扣热题100_回溯_17_电话号码的字母组合

力扣热题100_回溯_17_电话号码的字母组合

weixin_42504788的博客 516

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

代码学习记录21--回溯算法第二天

回溯算法的应用,数字组合,电话号码的映射

qq_45296815的博客 1097

17. 电话号码的字母组合 Java

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"] 示例 2: 输入:digits = "" 输出:[] 示例 3: 输入:digits = "2" 输出:["a","b","c"] 提示: 0 <= digits.len...

菼执的博客 708

【代码随想录训练营第42期 Day22打卡 回溯Part1 - LeetCode 77. 组合 216.组合总和III 17.电话号码的字母组合

回溯part--基础知识点,代码模板

记得要努力变强 1692

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习一(leetcode真题剖析)

这里要考虑全排列,在同一节点的所有组合中,相同的元素只能选择一次,所以这里我们要有一个标记元素是否使用的数组,在后面的主逻辑递归中,有两种写法,第一种是只关心“不合法”分支,第二种是只关心“合法”分支。通过深度优先搜索的方式,不断枚举每个数在当前位置的可能性,然后回溯到上一个状态,直到枚举完所有可能性得到正确的结果。这一题实际上还是和上一题类似的子集问题,只不过我们将存下的数组变为了一个值,进数组变为子集累计异或的值,出临时数组变为异或相同值,也就是删除异或过的数。的字符串,返回所有它能表示的字母组合。

立志做一个高产且细节博主 2114

【回溯算法 5】电话号码的字⺟组合(medium)(每日一题)

2. 电话号码的字⺟组合(medium) 题目链接:17. 电话号码的字母组合 - 力扣(LeetCode)算法思路: 代码实现: 动动手点个赞会让作者更开心,感谢阅览,加油各位 !

Y_1215的博客 686

Leetcode 热题 HOT 100 17.电话号码的字母组合(C++ 深搜+回溯)

Leetcode 热题 HOT 100 17.电话号码的字母组合(C++ 深搜+回溯) 题目 路漫漫其修远兮,刷题还得要用心! 一、题目解析 这是一道通过字母组合的问题,通过电话键上数字对应的字母经行组合输出,我们求解的方法是通过深度搜索+回溯的方法完成题目的求解!(提一句:不会搜索和回溯的小伙伴,要下来多多去学习哦,它们本质其实枚举,但在时间复杂度上有大的优化哦) 二、解题步骤 ①:我们定义一个字符数组s2来储存,电话键上数字所对应的字母组; ②:我们定义动态字符数组s1来储存我们返回的最终值,定义

qq_51933234的博客 2101

(回溯) LeetCode 17. 电话号码的组合

本题也是一道训练递归好题目,建议练习时间复杂度:O(N∗M)空间复杂度:O(N∗M)

zth12212003的博客 825

代码随想录刷题笔记 DAY 25 | 组合问题 No.77 | 组合求和III No.216 | 电话号码的字母组合 No.17

在[1,9]范围内使用4个不同的数字,我们可以得到的最小和是1+2+3+4 = 10,因为10 > 1,没有有效的组合。如果做过组合问题,这道题目就非常容易了,思路和剪枝操作都是完全相同的,就只需要注意一下递归的终点。输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]所以先编写一个实现两两组合的代码,再通过遍历将所有的按键全部组合起来也能得到结果。在大多数的题目中回溯的作用就是提供一个层数可控的。,这就是形成本题目要求的树形结构的方法。

kkq的博客 1607

【算法打卡day25(2026-03-17 周二)今日算法:「回溯算法」】1-力扣17-电话号码的字母组合 2-力扣39-组合总和 3-力扣40-组合总和II

摘要:2026年3月17日,作者郑龙浩记录了算法刷题第25天的学习情况。当天主要尝试解决回溯算法相关问题,包括力扣17题(电话号码字母组合)、39题(组合总和)和40题(组合总和II)。作者发现回溯算法难度较大,特别是涉及特殊条件时难以理解,最终决定暂停回溯算法的练习,转向蓝桥杯真题和基础算法题。文章详细记录了3道回溯题目的解题思路和代码实现,包括递归回溯模板的应用、剪枝优化等技巧,同时表达了在有限时间内(距离蓝桥杯25天)合理规划学习进度的思考。

仟墨(郑龙浩)的博客 371

03 电话号码的字母组合(leecode 17)

1 问题 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 2 解法 从示例上来说,输入"23",最直接的想法就是两层for循环遍历了吧,正好把组合的情况都输出了。 如果输入"233"呢,那么就三层for

weixin_42454048的博客 371

回溯算法:代码随想录基础

回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。回溯算法需要的参数可不像二叉树递归的时候那么容易一次性确定下来,所以一般是先写逻辑,然后需要什么参数,就填什么参数。树中就可以看出,一般来说搜到叶子节点了,也就找到了满足条件的一条答案,把这个答案存放起来,并结束本层递归。,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。回溯法一般是在集合中递归搜索,集合的大小构成了树的宽度,递归的深度构成的树的深度。

weixin_45419660的博客 501

day22 代码随想录 回溯基础| 组合问题 组合之和 电话号码

什么时候达到了终止条件,树中就可以看出,一般来说搜到叶子节点了,也就找到了满足条件的一条答案,把这个答案存放起来,并结束本层递归。示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4] ]为什么用回溯,因为有些问题就只能用穷举,只能暴力搜索,比如组合 100数中选出50个数,你如果用循环,那就要用50个for,你怎么写?示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]

Zison_Chen的博客 747

LeetCode刷题笔记第17题:电话号码的字母组合

其中n为digits的长度。,回溯时函数递归的深度。

qq_29787929的博客 451

LeetCode回溯 17. 电话号码的字母组合

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。的字符串,返回所有它能表示的字母组合。

2301_80072871的博客 192
上一篇: 算法-回溯篇02-组合总和 III
下一篇: 算法-回溯篇04-组合总和
Buling_0
博客等级 码龄5年 232粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值