美文网首页
哈希表 06

哈希表 06

作者: 眼若繁星丶 | 来源:发表于2020-12-14 19:42 被阅读0次

哈希表06

LeetCode 49

题解:

要求字母异位词,换句话说,在经过字典排序后,异位词是完全相同的,而相同的字符串,则可作为哈希表的Key,然后对应的value则是该词的异位词。

创建map<String, List<String>>,遍历题目给的字符串数组,每访问一个字符串,都先进行字典排序,然后作为key去map里面找value,不存在则创建空List集合,相当于把map里面的异位词对应当前找到的所有结果都拿出来,然后将现在遍历的这个字符串添加进去,最后再把这个List存回到map中,最后返回map.values()即可。

代码如下:

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<String, List<String>>();
        for (String str : strs) {
            char[] temp = str.toCharArray();
            // 字典排序
            Arrays.sort(temp);
            String key = String.valueOf(temp);
            // 把map中的已经找到的异位词集合拿出来
            List<String> list = map.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            // 存回到map集合汇总
            map.put(key, list);
        }
        return new ArrayList<List<String>>(map.values());
    }
}

相关文章

  • 哈希表 06

    哈希表06 [https://imgchr.com/i/ruuQNq] [https://leetcode-cn....

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • redis数据结构--字典

    Redis的字典底层就是哈希表。 哈希表 首先给出哈希表的定义: 其中可以看到,table是一个哈希表节点的数组,...

  • 哈希表和链表

    优秀文章:Chapter: 散列表(哈希表) 一、哈希表 哈希表hashtable(key,value) 就是把K...

  • 算法-哈希表算法总结

    1 哈希表模拟 思路:通过设计哈希表,模拟O(1)时间复杂度的哈希表。 2 数组作为哈希表 思路:数组就是简单的哈...

  • 数据结构 -- 哈希表及其应用

    这篇主要用来记录一下学习到的关于哈希表的知识点。 文章结构 哈希表 哈希表的定义 哈希表的优缺点 哈希碰撞 负载因...

  • 数据结构与算法(第一季):哈希表(Hash Table)

    一、哈希表(Hash Table) 1、概念 哈希表也叫做散列表。 哈希表的原理: 利用哈希函数生成key对应的i...

  • 深入理解哈希表

    深入理解哈希表 深入理解哈希表

  • 2019 算法面试相关(leetcode)--哈希表

    哈希表相关的原理可以参考下:浅谈哈希表(HashTable)深入理解哈希表哈希表的理解理解HashSet及使用 哈...

  • Redis中的字典

    Redis中的字典 Redis中的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表结点,而每个哈希表结点保...

网友评论

      本文标题:哈希表 06

      本文链接:https://www.haomeiwen.com/subject/ullbgktx.html