题目来源
这道题和数组全排列的区别在于,数组全排列的每一层数据都是在同一个数组中捞取数据,因此需要一个额外的used数组,来记录数组元素的使用情况。
而本题,每一层数据取自不同数组,比如输入23,则第一层固定取2对应的字母数组['a','b','c']中数据,第二层固定取3对应的字母数组["d", "e", "f"]中的数据。因此不需要额外的used来记录。
递归层级就是输入23的字符串长度2。
JS算法源码
const letters = [
null,
null,
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz",
];
var letterCombinations = function (digits) {
if (digits === "") return [];
const res = [];
dfs(digits, 0, [], res);
return res;
};
function dfs