49. 字母异位词分组

初步思路: 将每一个字符串拆解成字符列表,将每一个列表重新排序后组成新的字符串,之后看该字符串是否存在于hashmap里,若存在则将原字符串加在其对应的列表中,不存在则创建新的键值对。

image

后续优化: 使用hashmap的getOrDefault方法节约时间复杂度

image

ps: 最后新建列表的操作可以省略,直接将其返回可以再次优化时间复杂度

  • 时间复杂度:O(nklogk),其中 n 是 strs 中的字符串的数量,k 是 strs 中的字符串的的最大长度。需要遍历 n 个字符串,对于每个字符串,需要 O(klogk) 的时间进行排序以及 O(1) 的时间更新哈希表,因此总时间复杂度是 O(nklogk)。
  • 空间复杂度:O(nk),其中 n 是 strs 中的字符串的数量,k 是 strs 中的字符串的的最大长度。需要用哈希表存储全部字符串。
posted @ 2025-12-01 14:05  acccccccccc  阅读(0)  评论(0)    收藏  举报