Set Matrix Zeroes
Given an m x n
integer matrix matrix
, if an element is 0
, set its entire row and column to 0
's.
You must do it in place.
Example :
Input: matrix = [[1,1,1],[1,0,1],[1,1,1]] Output: [[1,0,1],[0,0,0],[1,0,1]]
class Solution:
def setZeroes(self, m: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
#initialize
r,c = len(m), len(m[0])
r0 = False
#set inplaces zero
for i in range(r):
for j in range(c):
if m[i][j] == 0:
m[0][j] = 0
if i > 0:
m[i][0] = 0
else:
r0 = True
#set whole row/col 0 if inplace is zero
for i in range(1,r):
for j in range(1,c):
if m[0][j] == 0 or m[i][0] == 0:
m[i][j] = 0
#setting zeroth col 0
if m[0][0] == 0:
for i in range(r):
m[i][0] = 0
#setting zeroth row 0
if r0:
for j in range(c):
m[0][j] = 0
Explaination :
Comments
Post a Comment