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);}
}