Skip to content

Commit 53620e3

Browse files
committed
group anagrams
1 parent a63d945 commit 53620e3

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Runtime: 6ms
3+
* Time Complexity: O(n x k log k)
4+
* - n: ๋ฌธ์ž์—ด ๊ฐœ์ˆ˜
5+
* - k: ๋ฌธ์ž์—ด ์ตœ๋Œ€ ๊ธธ์ด
6+
* - k log k: ๊ฐ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜๋Š” ์‹œ๊ฐ„
7+
*
8+
* Memory: 49.30MB
9+
* Space Complexity: O(n x k)
10+
* - ์ตœ๋Œ€ n๊ฐœ์˜ ํ‚ค-๊ฐ’
11+
*
12+
* Approach: ์ •๋ ฌ๋œ ๋ฌธ์ž์—ด์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ฐ™์€ ์• ๋‚˜๊ทธ๋žจ๋ผ๋ฆฌ ๊ทธ๋ฃนํ™”
13+
*/
14+
class Solution {
15+
public List<List<String>> groupAnagrams(String[] strs) {
16+
Map<String, List<String>> anagramMap = new HashMap<>();
17+
18+
for (String str: strs) {
19+
char[] chs = str.toCharArray();
20+
Arrays.sort(chs);
21+
String key = new String(chs);
22+
23+
anagramMap.computeIfAbsent(key, k -> new ArrayList<>())
24+
.add(str);
25+
}
26+
27+
return new ArrayList<>(anagramMap.values());
28+
}
29+
}

0 commit comments

Comments
ย (0)