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