【LeetCode笔记】17.电话号码的字母组合(Java、DFS)
文章目录
- 题目描述
- 代码 & 思路
题目描述
- 得建立映射,其实用数组来建立也行,看起来还比较直观。
代码 & 思路
- 理好DFS的过程就行,整体思路不难
- 当递归字符length = 1时,递归结束
class Solution {public List<String> letterCombinations(String digits) {List<String> ans = new ArrayList<>();Map<Character, String> hashmap = new HashMap<>();hashmap.put('2', "abc");hashmap.put('3', "def");hashmap.put('4', "ghi");hashmap.put('5', "jkl");hashmap.put('6', "mno");hashmap.put('7', "pqrs");hashmap.put('8', "tuv");hashmap.put('9', "wxyz");if (digits.length() == 0) {return ans;}// 每一种可能都要遍历到,因此时间复杂度为O(3^m * 4^n)deal(hashmap, digits, new StringBuilder(), ans);return ans;}// 空间复杂度O(m+n)void deal(Map<Character, String> hashmap, String digits, StringBuilder nowString, List<String> ans) {if (digits.length() == 0) {ans.add(nowString.toString());return;}for (char ch : hashmap.get(digits.charAt(0)).toCharArray()) {deal(hashmap, digits.substring(1, digits.length()), new StringBuilder(nowString).append(ch), ans);}}
}
- 假设m为对应3个字母的数字的数量,n为对应4个字母的数字的数量
- 时间复杂度为O(3m3^m3m * 4n4^n4n),因为每种情况都要遍历到
- 空间复杂度O(m + n),构造的答案的长度
【LeetCode笔记】17.电话号码的字母组合(Java、DFS)相关推荐
- 算法leetcode|17. 电话号码的字母组合(rust重拳出击)
文章目录 17. 电话号码的字母组合: 样例 1: 样例 2: 样例 3: 提示: 原题传送门: 分析 题解 rust go c++ java typescript python 17. 电话号码的字 ...
- leetcode系列--17.电话号码的字母组合
leetcode系列–第17题.电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数字到字母的映射如下(与电话按键相同).注意 1 ...
- leetcode:电话号码的字母组合--java,dfs
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...
- leecode做题笔记17————电话号码的字母组合
题目如下所示: 一开始的想法是通过循环遍历算法,但是每次循环的次数,由于每个数字包含的字母并不相同,所以会很麻烦.于是想到了使用递归的思想,但是由于本身递归算法使用的不够熟练,所以并没有写出成功的代码 ...
- 《LeetCode力扣练习》第17题 电话号码的字母组合 Java
<LeetCode力扣练习>第17题 电话号码的字母组合 Java 一.资源 题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数 ...
- [DFS|回溯法] leetcode 17 电话号码的字母组合
[DFS|回溯法] leetcode 17 电话号码的字母组合 1.题目 题目链接 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 ...
- LeetCode算法题17:电话号码的字母组合(Java版)
LeetCode传送门:电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: ...
- Leetcode算法Java全解答--17. 电话号码的字母组合
Leetcode算法Java全解答–17. 电话号码的字母组合 文章目录 Leetcode算法Java全解答--17. 电话号码的字母组合 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用 ...
- 【LeetCode】【HOT】17. 电话号码的字母组合(递归)
[LeetCode][HOT]17. 电话号码的字母组合 文章目录 [LeetCode][HOT]17. 电话号码的字母组合 package hot;import java.util.ArrayLis ...
- Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合
题目:216. 组合总和 III - 力扣(LeetCode) 思路: 1.递归函数参数和返回值:首先需要两个全局变量一维path数组和二维result数组,path数组用来收集路径上的元素,resu ...
最新文章
- 十分钟看会laravel导入导出功能,就这么简单
- 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...
- linux内核和w,Linux内核中Makefile、Kconfig和.config的关系
- 名词用作动词举例_日语动词修饰名词的形式
- 在gitlab 中使用webhook 实现php 自动部署git 代码
- 谈CRM产品设计的指导思想
- 【POJ - 2631 】Roads in the North(树的直径)
- 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统
- ICDAR 2019 文本识别冠军方案将开源!
- [debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题
- 嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
- 部署Screego浏览器实现多人共享屏幕
- Matlab信号处理综合工具
- contiki(官网简介翻译)介绍
- Python012--python3.7在本地及虚拟机上的安装与配置
- 【整理】CRISPR-Cas9用于病毒性传染病防控的最新进展
- IDEA改变背景颜色(护眼色)
- idea中整合redis中出现 Error creating bean with name ‘com.sxt.redis.RedisApplicationTests‘:
- 骁龙AR2平台解析:分布式架构开启轻量化AR眼镜新时代
- 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
热门文章
- 计算机院校人气排名,2019高校人气排行榜_最具人气大学排行榜7月榜单发布 清华大学排第一...
- C++中派生类隐式调用与显式调用基类的构造函数
- pytorch保存模型时报错***object has no attribute 'state_dict'
- Opencv和C++实现canny边缘检测
- 别以为if slse很简单——决策树
- SQL Server查询中特殊字符的处理方法
- C++学习之路 | PTA乙级—— 1009 说反话 (20分)(精简)
- php ie 下载 乱码,php ie下载文件名乱码怎么办
- C语言的数组基础,C语言基础-数组
- 大学计算机在线答题,大学计算机基础网上考试答题卷理论部分(含答案)