Problem: 17. 电话号码的字母组合
文章目录
- 思路
- 复杂度
- 💝 Code
思路
👨🏫 参考题解
复杂度
时间复杂度: O ( 3 8 ) O(3^8) O(38)
空间复杂度: O ( 3 8 ) O(3^8) O(38)
💝 Code
class Solution {
String[] map = { " ", "*", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };//存 数字 和 字符串 的映射关系
List<String> res = new ArrayList<>();
String d;//输入的数字
public List<String> letterCombinations(String digits)
{
d = digits;
if (d == null || d.length() == 0)
return new ArrayList<String>();
dfs("", 0);//从 0 位开始
return res;
}
private void dfs(String s, int u)
{
if (u == d.length())
{
res.add(s);
return;
}
char c = d.charAt(u);
int idx = c - '0';
char[] arr = map[idx].toCharArray();
for (int i = 0; i < arr.length; i++)
dfs(s + arr[i], u + 1);
}
}