目录

【Leetcode-Hot100】字母异位词分组

题目

解答

排序哈希表方法

其中,key="".join(sorted(str))使用的原因可以被拆解为:str是一个字符串,例如'abc',当使用sorted进行排序后,返回的是一个个字母组成的列表['a', 'b', 'c'],因此使用join后,会将字母重新组合为字符串,传送给key。

  • 时间复杂度nklogk,空间复杂度nk

计数哈希表方法

  • 时间复杂度:O(n(k+∣Σ∣)),其中 n 是 strs 中的字符串的数量,k 是 strs 中的字符串的的最大长度,Σ 是字符集,在本题中字符集为所有小写字母,∣Σ∣=26。需要遍历 n 个字符串,对于每个字符串,需要 O(k) 的时间计算每个字母出现的次数,O(∣Σ∣) 的时间生成哈希表的键,以及 O(1) 的时间更新哈希表,因此总时间复杂度是 O(n(k+∣Σ∣))。

  • 空间复杂度:O(n(k+∣Σ∣)),其中 n 是 strs 中的字符串的数量,k 是 strs 中的字符串的最大长度,Σ 是字符集,在本题中字符集为所有小写字母,∣Σ∣=26。需要用哈希表存储全部字符串,而记录每个字符串中每个字母出现次数的数组需要的空间为 O(∣Σ∣),在渐进意义下小于 O(n(k+∣Σ∣)),可以忽略不计。

若当k的长度很大时,使用排序算法具有更高的效率。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
独家回忆3642 小时前
每日算法-250415
算法
m0_742950552 小时前
算法堆排序记录
数据结构·算法
明月看潮生3 小时前
青少年编程与数学 02-016 Python数据结构与算法 15课题、字符串匹配
python·算法·青少年编程·编程与数学
精彩漂亮ing4 小时前
CExercise_13_1排序算法_2归并排序
算法·排序算法
写不出bug的小李4 小时前
首次打蓝桥杯总结(c/c++B组)
职场和发展·蓝桥杯
小媛早点睡6 小时前
贪心算法day10(无重叠区间)
算法·贪心算法
DataFunTalk6 小时前
乐信集团副总经理周道钰亲述 :乐信“黎曼”异动归因系统的演进之路
前端·后端·算法
行走的bug...6 小时前
sklearn估计器和变换器共有的一些方法 待更新
人工智能·算法·sklearn
DataFunTalk6 小时前
开源一个MCP+数据库新玩法,网友直呼Text 2 SQL“有救了!”
前端·后端·算法
SuperW7 小时前
蓝桥杯嵌入式十六届赛前复习总结与准备
职场和发展·蓝桥杯