回溯---3.电话号码的字母组合

FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波 图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测。 阅读详情

题目链接

/**

            首先创建HashMap,初始化号码与字母间的映射关系

            大致执行流程:

                        首先依次从每个字符集中选取第一个元素,直到访问完所有字符集,将结果添加到res中

                        回溯,访问最后一个字符集的第二个元素,将结果添加到res中;再回溯,重复上述流程直到最后一个字符集的所有元素访问完毕

                        回溯,重复上述流程,访问倒数第二个个字符集的所有元素,直到倒数第二个字符集所有元素访问完毕

                        .......

                        直到第一个字符集所有元素被访问,得到所有结果

            所需参数:

                        String tempResult保存单次结果; index控制可访问的字符集

            操作细化(for循环 + 递归):

                        终止条件 index == digits.size() 代表最后一个字符集访问完毕

                        递归时index递增,访问下一个字符集;回溯时通过for循环迭代访问字符集中下一个字符

*/

class Solution {
    //Hash表,初始化号码与字母间的映射关系
    private Map<Character,String> phoneMap;
    //临时保存单次结果
    StringBuilder tempResult = new StringBuilder();
    //保存结果集
    List<String> res = new ArrayList<>();

    //避免重复传参
    private String digits;

    public List<String> letterCombinations(String digits) {
        /**
            首先创建HashMap,初始化号码与字母间的映射关系
            大致执行流程:
                        首先依次从每个字符集中选取第一个元素,直到访问完所有字符集,将结果添加到res中
                        回溯,访问最后一个字符集的第二个元素,将结果添加到res中;再回溯,重复上述流程直到最后一个字符集的所有元素访问完毕
                        回溯,重复上述流程,访问倒数第二个个字符集的所有元素,直到倒数第二个字符集所有元素访问完毕
                        .......
                        直到第一个字符集所有元素被访问,得到所有结果
            所需参数:
                        String tempResult保存单次结果; index控制可访问的字符集
            操作细化(for循环 + 递归):
                        终止条件 index == digits.size() 代表最后一个字符集访问完毕
                        递归时index递增,访问下一个字符集;回溯时通过for循环迭代访问字符集中下一个字符
        */

        if(digits.isEmpty()) {
            return res;
        }

        //初始化
        this.digits = digits;
        this.phoneMap = new HashMap<Character, String>() {{
            put('2', "abc");
            put('3', "def");
            put('4', "ghi");
            put('5', "jkl");
            put('6', "mno");
            put('7', "pqrs");
            put('8', "tuv");
            put('9', "wxyz");
        }};

        backtrack(0);
        return res;
    }

    private void backtrack(int index) {
        if(index == digits.length()) {
            res.add(tempResult.toString());
            return;
        }

        //通过index获取当前该访问的字符集
        Character c = digits.charAt(index);
        String s = phoneMap.get(c); 
        
        for(Character c1 : s.toCharArray()) {
            //将当前字符添加到temp中
            tempResult.append(c1);

            //递归时index + 1 访问下一个字符集
            backtrack(index + 1);

            //回溯,回退tempResult的状态  迭代c1访问字符集中的下一个字符
            tempResult.deleteCharAt(tempResult.length() - 1);
        }
        
    }
}

《雷达入门课 》系列文章(5)线性调频连续波雷达基本原理(第1讲) S=B/Tc,是调频斜率。这里的混频公式推导过程比较简单,具体的混频过程如果感兴趣可以看下面粗略的推导,混频的本质就是频谱搬移,分为上变频和下变频,一般我们用下变频,即差频信号,因此需要一个低通滤波器即可滤出我们所需要的信号。答案就是因为中频信号能够映射出目标的距离信息,换句话说就是目标的距离不一样,返回的时间τ也就不一样,因此中频信号的频率大小也就不一样,可以说距离和中频信号是成映射关系的。中频只是表示信号频段的程度词,不是表示信号的状态词,意思就是说中频是指信号的频率不是很高,正好处于中间的地位。 阅读详情

相关推荐

sdio wifi 移植

介绍 简单来说,sdio起源自sd标准,顾名思义就是sd的IO接口(interface)的意思,更具体的说明,sd本来是记忆卡的标准,但是现在也可以把SD卡拿来插上一些外围设备接口使用,这个就是就叫做sdio。 而且sdio本身是一种相当单纯的技术,通过sd的IO引脚来连接外部外围,并且通过sd的IO数据接位与外围传输数据,而且sd协会也推出很完整的sdio stack 驱动程序,使得sdio外围得开发与应用变得非常热门 这里我们要移植的是RTL8822cs的sdio WiFi 模块,将其移植到rk3

Enosji的博客 9612

回溯——3.电话号码的字母组合

映射表建立: 通过letterMap将数字0-9与对应的字母集合关联起来。递归生成组合: 使用递归来遍历所有可能的字母组合,递归的每一层处理一个数字,逐层向组合字符串添加对应的字母。终止条件: 当处理完所有数字时,保存生成的组合。返回结果: 最终将所有可能的组合结果存储在result列表中并返回。

plutomty的博客 961

STM32铅酸蓄电池内阻测试仪的交流阻抗测量与数据采集优化

本文深入探讨了基于STM32的铅酸蓄电池内阻测试仪设计,重点解析了交流阻抗测量原理与数据采集优化方案。通过采用1kHz交流小信号注入和数字相敏检波技术,实现对电池欧姆内阻的无损精准测量,并详细介绍了硬件前端调理、ADC过采样及系统标定等关键优化手段,有效提升了测量精度与稳定性。

weixin_29168393的博客 487

代码随想录93——回溯算法4——组合3——电话号码的字母组合

🔥本篇概览:数据结构与算法 || 详细讲解了电话号码的字母组合。🌈⭕🔥

做一个善良的人,做好自己的事,如果愿意,再发一份光。 1189

基于Xilinx_IBERT的光纤接口眼图测试

基于Xilinx_IBERT的光纤接口眼图测试

Coca_Tian的博客 1万+

ANSYS Fluent:湍流模型理论与应用

雷诺平均方程(RANS,Reynolds-Averaged Navier-Stokes equations)是湍流建模中最常用的方法。它通过将Navier-Stokes方程中的瞬时速度分解为平均速度和脉动速度,然后对这些方程进行时间平均,从而简化了湍流的计算。RANS方法的关键在于湍流闭合问题的解决,即如何准确地表示脉动速度的统计量。雷诺应力模型(RSM)是一种更高级的湍流模型,它通过求解六个雷诺应力方程来描述湍流的各向异性。RSM模型能够更准确地预测复杂的湍流流动,如旋转流和分离流,但计算成本较高。

kkchenjj的博客 2947

回溯算法题(3)电话号码的字母组合

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

小唐要努力的博客 287

AI智算-K8s如何利用IB RDMA网络加速大模型分布式训练

在AI人工智能领域,大模型的微调是提升性能不可或缺的一环。通过结合InfiniBand RDMA网络的高速互联、Kubernetes的云原生容器化部署,以及智能算力调度平台,可以打造一个高效、灵活且可扩展的分布式训练环境。

Kason_iWiki 819

3、C++算法之代码随想录(回溯算法)——电话号码的字母组合

给定一个字符串,输出数字对应字母的所有组合。字符串的长度代表遍历的层数,数字对应的字母个数代表遍历的宽度。为了方便数字和字母的对应,创建一个字符串数组进行映射。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。的字符串,返回所有它能表示的字母组合。

qq_55527904的博客 337

【新能源汽车测试工程师必看!DBC文件50条实战技巧,看懂这篇直接封神】

如果你是新能源汽车研发/测试工程师,还在为信号解析错误、报文找不到、DBC看不懂、实车故障复现不了头疼——那这篇文章,你一定要!在整车电控开发里,DBC = CAN总线的官方字典。没有DBC,报文就是一串乱码;读不懂DBC,测试寸步难行;用不好DBC,排查故障全靠猜。本文总结50条全网最实用、最贴近实车、最能解决问题的DBC技巧,从基础语法到新能源专用信号,从工具操作到故障排错,全部来自一线台架、实车、高压平台实战经验。不废话、不空谈、不玄学,全是能直接落地的硬货!

优快云-新能源汽车研发测试专业博主 1372

YOLOv11模型改进全攻略:利用轻量化模块实现精度与速度双跃升

如果你在实操中遇到模块替换导致的精度骤降或部署报错,不妨尝试调整轻量化模块的替换比例,或针对性地保留关键层的原始结构。记住,轻量化的核心是“在精度损失可接受的范围内最大化提升效率”,只要结合业务场景灵活取舍,你也能让YOLOv11在资源受限的环境中大放异彩。接下来,我们从模块选型到代码集成,一步步带你打造“轻量且能打”的YOLOv11,真正帮你解决工业落地中的效率与精度痛点。训练过程中关注模型的mAP和推理速度,若精度下降过多,可调整模块替换的比例(如仅替换Backbone的部分卷积层)。

m0_64661770的博客 502

算法训练营day25(回溯算法02:组合总和3,电话号码的字母组合)

/ 减枝 9 - (k - path.size()) + 1。

weixin_61931006的博客 994

uniapp [安卓苹果App端] - 实现微信支付功能+拉起微信付款支付后返回本app页面,详解uniApp如何唤起本机微信app并跳转到支付页面全流程及示例源码(uniapp实现微信支付,可打包)

uni-app项目在APP端使用微信支付功能,uniapp前端实现微信支付,uniapp开发安卓App对接微信支付,uniapp苹果ios唤起微信支付,uniapp调用微信支付uniapp开发app-调用微信支付,uniapp开发安卓苹果app如何接入微信支付,前后端应该怎么做,UniApp中实现微信支付功能,支付报错,调起失败没响应,uniapp苹果微信支付唤起实现,app唤起微信支付,拉起微信支付,uniapp中唤醒微信进行支付并返回app,uniApp调起微信支付失败报错,全网最详细的uniapp微信

🏆 前端领域优质创作者 1万+

代码随想录训练营day25|回溯:216.组合总和3、17.电话号码的字母组合

思路:模板题。区别在于终止条件多了一步,要判断在满足个数为k时,求和是否为n,因此也多了一个变量sumTemp用来累加求和,避免还要对temp链表求和(多使用变量)。

qq_40837128的博客 122

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

代码随想录打卡|Day19|回溯算法Part01(理论基础、组合、组合总和2、电话号码的字母组合)

回溯法的框架(来自代码随想录)

m0_51794588的博客 329

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

3.<tag-回溯和组合及其剪枝>lt.17. 电话号码的字母组合 0.5

[案例需求] [思路分析] 数字和字母如何映射 可以使用map或者定义一个二维数组,例如:string letterMap[10],来做映射, [代码实现] class Solution { List<String> list = new ArrayList<>(); public List<String> letterCombinations(String digits) { // if(digits == nul

菜菜的大数据开发の路 377

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【代码随想录——回溯算法——一周目】

回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)。

qq_45467608的博客 654

【LeetCode】-电话号码的字母组合(Go代码+多解法)

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

qq_42887507的博客 1171

代码训练营第28天:回溯算法part2|leetcode216组合总和3|leetcode17电话号码里的字母组合

没有做任何剪枝,而且在开始调试的时候总是额外输出最后一个数字对应的所有字母单独出现在result中,后来在return逻辑上判断长度解决了这个问题。因为问的是所有可能,总要都遍历一遍的。分析一下,最外层的for循环的作用是遍历digits,但是在这个题目中递归函数start参数已经实现了逐个元素遍历digits,意味着start和i表达的意义完全相同。如果像代码随想录里面第二种剪枝写法,即写在for循环里,就需要先回溯再剪枝。最后是完整的加上错误处理的代码,错误处理在面试的算法中应该写出来。

weixin_44442376的博客 237

力扣刷题Day 62:电话号码的字母组合(17)

​方法1(迭代):依次将字符串里每个字符对应的字母拼接起来。 方法2(回溯):写了个递归函数。 方法3(队列):参考了腐烂的橘子佬的题解,感觉是方法1的优化版本(优化了方法1里new_res产生的额外空间)。

qq_52643100的博客 364

Day25--回溯算法part02

今天接着复习一下回溯算法基本操作。

B7_0729的博客 537

25-回溯算法-216.组合总和3 17.电话号码的数字组合

25-回溯算法-216.组合总和3 17.电话号码的数字组合

weixin_48494477的博客 344

代码随想录算法训练营day25 | 216.组合总和III、17.电话号码的字母组合

LeetCode | 216.组合总和III、17.电话号码的字母组合

weixin_69675605的博客 1036

LeetCode电话号码的字母组合JS实现

电话号码的字母组合 欢迎关注我的博客LeetCode电话号码的字母组合JS实现 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 说明 尽管上面的答案是按字典序排列的,...

weixin_43408592的博客 400

代码随想录算法训练营第二十五天/216.组合总和3、17.电话号码的字母组合

代码随想录算法训练营

duangwang的博客 132

字节面试题——17. 电话号码的字母组合

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

weixin_45942644的博客 1023
上一篇: 【计组】第二章 数据信息的表示
下一篇: MySQL----索引
码破苍穹ovo
博客等级 码龄2年 377粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值