File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change
1
+ '''
2
+ ํ์ด
3
+ - ์ค๋ณต๋๋ triplet์ ํผํ๊ธฐ ์ํด ๋ฐฐ์ด nums๋ฅผ ์ ๋ ฌํฉ๋๋ค
4
+ - nums๋ฅผ ์ํํ๋ฉฐ ์ด์ค ๋ฐ๋ณต๋ฌธ์ ์ํํ์ฌ res ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค
5
+ - ์ค๋ณต๋๋ triplet์ ํผํ๊ธฐ ์ํด appended set์ ์ด์ฉํฉ๋๋ค
6
+
7
+ Big O
8
+ - N: ๋ฐฐ์ด nums์ ํฌ๊ธฐ
9
+
10
+ - Time complexity: O(N^2)
11
+ - nums๋ฅผ ์ ๋ ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ NlogN ํํ๋ก ์ฆ๊ฐํฉ๋๋ค
12
+ - ์ด์ค ๋ฐ๋ณต๋ฌธ์ ์คํํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ N^2 ํํ๋ก ์ฆ๊ฐํฉ๋๋ค
13
+ - O(NlogN + N^2)์์ ์ฆ๊ฐ์จ์ด ๊ฐ์ฅ ํฐ ํญ์ N^2์ด๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ O(N^2)์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค
14
+
15
+ - Space complexity: O(N)
16
+ - nums๋ฅผ ์ ๋ ฌํ ๋ฐฐ์ด์ ๋ณต์ฌํ์ฌ sorted_nums์ ์ ์ฅํ์๊ณ ์ด์ ํ์ํ ๊ณต๊ฐ์ N์ ํํ๋ก ์ฆ๊ฐํฉ๋๋ค
17
+ - ์ฒซ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ ์์ store์ ์ต๋ N๋งํผ ์ปค์ง ์ ์์ต๋๋ค
18
+ - appended ์งํฉ์ nums์ ๋ชจ๋ ์์๊ฐ ๊ณ ์ ํ๋๋ผ๋ N๋ณด๋ค ์ปค์ง ์ ์์ต๋๋ค
19
+ '''
20
+
21
+ class Solution :
22
+ def threeSum (self , nums : List [int ]) -> List [List [int ]]:
23
+ n = len (nums )
24
+
25
+ sorted_nums = sorted (nums )
26
+
27
+ res = []
28
+
29
+ for i in range (n - 2 ):
30
+ first = sorted_nums [i ]
31
+
32
+ if i > 0 and first == sorted_nums [i - 1 ]:
33
+ continue
34
+
35
+ store = {}
36
+ store [- first - sorted_nums [i + 1 ]] = sorted_nums [i + 1 ]
37
+
38
+ appended = set ()
39
+
40
+ for j in range (i + 2 , n ):
41
+ second = sorted_nums [j ]
42
+
43
+ if second in store and second not in appended :
44
+ res .append ([first , store [second ], second ])
45
+ appended .add (second )
46
+ store [- first - second ] = second
47
+
48
+ return res
You canโt perform that action at this time.
0 commit comments