Skip to content

Commit 7f74c8c

Browse files
committed
solve5
1 parent f9d0613 commit 7f74c8c

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

set-matrix-zeroes/pmjuu.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
'''
2+
시간복잡도: O(m * n)
3+
공간복잡도: O(1)
4+
'''
5+
6+
from typing import List
7+
8+
9+
class Solution:
10+
def setZeroes(self, matrix: List[List[int]]) -> None:
11+
m, n = len(matrix), len(matrix[0])
12+
first_row_zero = False # Flag to check if the first row needs to be zeroed
13+
first_col_zero = False # Flag to check if the first column needs to be zeroed
14+
15+
# Check if the first row has any zeros
16+
for j in range(n):
17+
if matrix[0][j] == 0:
18+
first_row_zero = True
19+
break
20+
21+
# Check if the first column has any zeros
22+
for i in range(m):
23+
if matrix[i][0] == 0:
24+
first_col_zero = True
25+
break
26+
27+
# Use the first row and column to mark rows and columns that need to be zeroed
28+
for i in range(1, m):
29+
for j in range(1, n):
30+
if matrix[i][j] == 0:
31+
matrix[i][0] = 0
32+
matrix[0][j] = 0
33+
34+
# Zero out cells based on markers in the first row and column
35+
for i in range(1, m):
36+
for j in range(1, n):
37+
if matrix[i][0] == 0 or matrix[0][j] == 0:
38+
matrix[i][j] = 0
39+
40+
# Zero out the first row if needed
41+
if first_row_zero:
42+
for j in range(n):
43+
matrix[0][j] = 0
44+
45+
# Zero out the first column if needed
46+
if first_col_zero:
47+
for i in range(m):
48+
matrix[i][0] = 0

0 commit comments

Comments
 (0)