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

[LeetCode]49. 字母异位词分组(java实现)哈希表

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

[LeetCode]49. 字母异位词分组(java实现)哈希表

[LeetCode]49. 字母异位词分组(java实现)哈希表

1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结

1. 题目

2. 读题(需要重点注意的东西)

思路(哈希表):
我们观察到,所有异位词排序后是同一个单词,因此我们可以让单词按顺序排序,用哈希表存储排序后的单词,最终相同的就是异位词,如"ate",“eat”,“tea"排序后都是"aet”。

哈希表构建:
key为排序后的单词, values为题目给出的字母异位词,如:
key:“ate”
values:“ate”,“eat”,“tea”

3. 解法

---------------------------------------------------解法---------------------------------------------------:

class Solution {
    public List> groupAnagrams(String[] strs) {
        List> res = new ArrayList<>();
        Map> hashmap = new HashMap<>();
        for(int i = 0;i < strs.length;i++){
            char[] c = strs[i].toCharArray();
            Arrays.sort(c);
            String s = new String(c);
            if(!hashmap.containsKey(s)) hashmap.put(s,new ArrayList()); // 第一次,新建一个空数组
            hashmap.get(s).add(strs[i]); // 可以直接在value上进行修改
        }
        for(List temp : hashmap.values()) res.add(temp);
        return res;
    }
}

可能存在的问题:

4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想

Java数据结构—HashMap(哈希表及其基本操作)(含hashset) 6. 总结

注意: 哈希表可以直接读取出value的值,然后在值上进行修改

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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