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