From 82daf378b4453bcaec359adf4a4312f6081a8090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= Date: Tue, 15 Jan 2019 00:03:20 +0800 Subject: [PATCH] Update 49. Group Anagrams.md --- 49. Group Anagrams.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/49. Group Anagrams.md b/49. Group Anagrams.md index 957172f..0e46951 100644 --- a/49. Group Anagrams.md +++ b/49. Group Anagrams.md @@ -6,9 +6,9 @@ 2. 遍历一遍,然后用一个数组记录26个字母每个字母出现的次数,再比较这个次数(类似桶排序)。 如果方法1使用桶排序的话其实两种方法就是差不多的了。 -解决了如何判断得问题,算法思路就清晰了: -对strs中的每个字符串的副本str,对其进行排序(可以使用桶排序也可使用现成的sort),然后用一个map来记录这个str是否在以前出现过。 -若`map[str] == 0`则说明没有出现过,否则则出现过,map[str]的值代表最终返回结果数组res对应元素的下标加一。 +解决了如何判断的问题,算法思路就清晰了: +对strs中的每个字符串的副本str,对其进行排序(可以使用桶排序也可使用现成的sort),然后用一个hash表mp来记录这个str是否在以前出现过。 +若`mp[str] == 0`则说明没有出现过;否则则出现过,mp[str]的值代表最终返回结果数组(即代码中的res)中对应元素的下标加一。 若strs中有n个字符串,每个字符串长度平均为m,则桶排序时间复杂度为O(m),如果使用的是unordered_map(对应hash)则查找复杂度O(1),所以总体时间复杂度O(mn)。