LeetCode #73 Set Matrix Zeroes
题目
解题方法
题目本身并不难,但给定的限制条件比较苛刻:需要O(1)的空间复杂度。我采用的是比较容易想到的替换式思路,把数组中的0替换成不会出现的特殊字符'#',但这是得益于python的list特性(python牛逼),实际上这种做法还是不太合适的,相比之下力扣上有一个置首位为0的做法比较巧妙。
代码
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
m = len(matrix)
n = len(matrix[0])
for i in range(m):
for j in range(n):
if matrix[i][j] == 0:
matrix[i][j] = '#'
for i in range(m):
for j in range(n):
if matrix[i][j] == '#':
for x in range(m):
if matrix[x][j] != '#':
matrix[x][j] = 0
for y in range(n):
if matrix[i][y] != '#':
matrix[i][y] = 0
for i in range(m):
for j in range(n):
if matrix[i][j] == '#':
matrix[i][j] = 0

浙公网安备 33010602011771号