File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed 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
You can’t perform that action at this time.
0 commit comments