栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣算法学习day19-1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣算法学习day19-1

文章目录

力扣算法学习day19-1

17-电话号码的字母组合

题目代码实现

力扣算法学习day19-1 17-电话号码的字母组合 题目

代码实现
class Solution {
    // 自己直接想到的方法。0ms
    // List result = new ArrayList<>();
    // StringBuilder path = new StringBuilder();
    // public List letterCombinations(String digits) {
    //     // 由题知,长度至少为0.
    //     if(digits.length() == 0){
    //         return result;
    //     }
    //     HashMap map = new HashMap<>();
    //     map.put('2',new char[]{'a','b','c'});
    //     map.put('3',new char[]{'d','e','f'});
    //     map.put('4',new char[]{'g','h','i'});
    //     map.put('5',new char[]{'j','k','l'});
    //     map.put('6',new char[]{'m','n','o'});
    //     map.put('7',new char[]{'p','q','r','s'});
    //     map.put('8',new char[]{'t','u','v'});
    //     map.put('9',new char[]{'w','x','y','z'});
    //     char[] number = digits.toCharArray();
    //     recall(0,number,map);

    //     return result;
    // }
    // public void recall(int i,char[] number,HashMap map){
    //     if(path.length() == number.length){
    //         result.add(path.toString());
    //         return;
    //     }

    //     char[] temp = map.get(number[i]);
    //     for(int j = 0;j < temp.length;j++){
    //         path.append(temp[j]);
    //         recall(i+1,number,map);
    //         path.deleteCharAt(path.length() - 1);
    //     }
    // }

    // 其他方法:使用数组,优势,写得更快?速度一样0ms
    String[] numString = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
    List result = new ArrayList<>();
    StringBuilder path = new StringBuilder();
    public List letterCombinations(String digits) {
        if(digits.length() == 0){
            return result;
        }
        recall(digits,0);

        return result;
    }
    public void recall(String digits,int index){
        if(path.length() == digits.length()){
            result.add(path.toString());
            return;
        }

        String str = numString[digits.charAt(index)-'0'];
        for(int j = 0;j < str.length();j++){
            path.append(str.charAt(j));
            recall(digits,index+1);
            path.deleteCharAt(path.length()-1);
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732669.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号