网站qq在线代码,矿业公司网站源码,广东省农业农村厅厅长,做seo要明白网站内容理解题意#xff1a; 给定一个仅包含数字 2-9 的字符串#xff0c;返回所有它能表示的字母组合 本质上#xff1a;数字代表着一个字母集合 数字的个数决定了递归的深度#xff0c;即树的深度 数字代表的字母组合决定了当前树的宽度。 1.暴力回溯
这里没有什么剪枝… 理解题意 给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合 本质上数字代表着一个字母集合 数字的个数决定了递归的深度即树的深度 数字代表的字母组合决定了当前树的宽度。 1.暴力回溯
这里没有什么剪枝的约束条件只有结束条件。
补充StringBuilder的两个方法
StringBuilder pathnew StringBuilder();
path.append(letter.charAt(i));//追加元素
path.deleteCharAt(path.length()-1);//删除末尾元素
LinkedListString resultsnew LinkedList();StringBuilder pathnew StringBuilder();String[] letterMapnew String[]{,,abc,def,ghi,jkl,mno,pqrs,tuv,wxyz};public ListString letterCombinations(String digits) {if(digitsnull||digits.length()0) return results;backtracking(digits,0);return results;}public void backtracking(String digits,int index){if(indexdigits.length()){//结束条件收集结果results.add(path.toString());return;}int digitdigits.charAt(index)-0;String letterletterMap[digit];for(int i0;iletter.length();i){//遍历当前数字对应的字母集合//路径追加path.append(letter.charAt(i));//递归backtracking(digits,index1);//路径回溯path.deleteCharAt(path.length()-1);}}
2.分析 时间复杂度O() 空间复杂度O(mn) 其中m是3个字母的数字个数n是4个字母的数字个数。 三个字母表示该层有三个分支