File tree Expand file tree Collapse file tree 3 files changed +71
-0
lines changed
longest-substring-without-repeating-characters Expand file tree Collapse file tree 3 files changed +71
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ 시간 복잡도: O(N)
3
+ 공간 복잡도: O(N)
4
+ """
5
+ class Solution :
6
+ def lengthOfLongestSubstring (self , s : str ) -> int :
7
+ s_set = set ()
8
+ start , end = 0 , 0
9
+
10
+ result = 0
11
+
12
+ while end < len (s ):
13
+ if s [end ] in s_set :
14
+ s_set .remove (s [start ])
15
+ start += 1
16
+ else :
17
+ s_set .add (s [end ])
18
+ end += 1
19
+ result = max (result , end - start )
20
+
21
+ return result
Original file line number Diff line number Diff line change
1
+ """
2
+ 시간 복잡도: O(m * n)
3
+ 공간 복잡도: O(m * n)
4
+ """
5
+ from collections import deque
6
+
7
+ class Solution :
8
+ def numIslands (self , grid : List [List [str ]]) -> int :
9
+ m , n = len (grid ), len (grid [0 ])
10
+ vis = [[False ] * n for _ in range (m )]
11
+
12
+ dx = [1 , - 1 , 0 , 0 ]
13
+ dy = [0 , 0 , 1 , - 1 ]
14
+
15
+ result = 0
16
+ for i in range (m ):
17
+ for j in range (n ):
18
+ if grid [i ][j ] == '1' and not vis [i ][j ]:
19
+ queue = deque ()
20
+ queue .append ((j , i ))
21
+ vis [i ][j ] = True
22
+ while queue :
23
+ cur = queue .popleft ()
24
+ for nxt in range (4 ):
25
+ nx = cur [0 ] + dx [nxt ]
26
+ ny = cur [1 ] + dy [nxt ]
27
+ if not 0 <= nx < n or not 0 <= ny < m :
28
+ continue
29
+ if vis [ny ][nx ] or grid [ny ][nx ] != '1' :
30
+ continue
31
+ queue .append ((nx , ny ))
32
+ vis [ny ][nx ] = True
33
+ result += 1
34
+
35
+ return result
Original file line number Diff line number Diff line change
1
+ """
2
+ 시간 복잡도: O(N)
3
+ 공간 복잡도: O(1)
4
+ """
5
+ class Solution :
6
+ def reverseList (self , head : Optional [ListNode ]) -> Optional [ListNode ]:
7
+ prev = None
8
+
9
+ while head :
10
+ nxt = head .next
11
+ head .next = prev
12
+ prev = head
13
+ head = nxt
14
+
15
+ return prev
You can’t perform that action at this time.
0 commit comments