class Solution(object):
def setZeroes(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: None Do not return anything, modify matrix in-place instead.
"""
if len(matrix)==0 or len(matrix[0])==0:
return
w=len(matrix[0])
h=len(matrix)
v00=matrix[0][0]
scanh=0
for i in xrange(w):
if matrix[0][i] == 0:
scanh=1
break
scanv=0
for j in xrange(h):
if matrix[j][0] == 0:
scanv=1
break
for i in xrange(w):
for j in xrange(1, h):
if matrix[j][i] == 0:
matrix[0][i]=0
break
print "scan1", matrix
matrix[0][0]=v00
for j in xrange(h):
for i in xrange(1, w):
if matrix[j][i] == 0:
matrix[j][0]=0
break
matrix[0][0]=v00
sh=matrix[0][0]
for i in xrange(1,w):
if matrix[0][i]!=0:
continue
for j in xrange(1,h):
matrix[j][i]=0
for j in xrange(1,h):
if matrix[j][0]!=0:
continue
for i in xrange(1,w):
matrix[j][i]=0
if scanh==1:
for i in xrange(w):
matrix[0][i]=0
if scanv==1:
for j in xrange(h):
matrix[j][0]=0