method: color picture
本题主要根据计算机视觉学到的着色原理,要想满足条件,需要对没有完成的0做标记,逆向思路就是把完成的做标记。
那么再把标记还原了。这里用到float(‘inf’),是python的系统内置无穷大,满足数字的条件,否则无法通过测试。
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
def color(matrix, x, y):
for i in range(len(matrix[0])):
if matrix[x][i] != 0:
matrix[x][i] = float('inf')
for j in range(len(matrix)):
if matrix[j][y] != 0:
matrix[j][y] = float('inf')
matrix[x][y] = float('inf')
def color_back(matrix):
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if matrix[i][j] == float('inf'):
matrix[i][j] = 0
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if matrix[i][j] == 0:
color(matrix, i, j)
color_back(matrix)