您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在LeetCode中,零矩阵(Zero Matrix)是一个常见的算法问题。给定一个二维数组(矩阵),如果某个元素为0,则将其所在的行和列的所有元素都设置为0。本文将介绍如何实现这一功能。
给定一个 m x n
的矩阵,如果矩阵中的某个元素为0,则将其所在的行和列的所有元素都设置为0。要求在原矩阵上进行修改,不使用额外的空间。
标记法:
原地修改:
def setZeroes(matrix):
m, n = len(matrix), len(matrix[0])
first_row_has_zero = any(matrix[0][j] == 0 for j in range(n))
first_col_has_zero = any(matrix[i][0] == 0 for i in range(m))
# 使用第一行和第一列来标记
for i in range(1, m):
for j in range(1, n):
if matrix[i][j] == 0:
matrix[i][0] = 0
matrix[0][j] = 0
# 根据标记设置0
for i in range(1, m):
for j in range(1, n):
if matrix[i][0] == 0 or matrix[0][j] == 0:
matrix[i][j] = 0
# 处理第一行和第一列
if first_row_has_zero:
for j in range(n):
matrix[0][j] = 0
if first_col_has_zero:
for i in range(m):
matrix[i][0] = 0
通过使用矩阵的第一行和第一列来记录需要设置为0的行和列,我们可以在不使用额外空间的情况下实现零矩阵。这种方法的时间复杂度为O(m*n),空间复杂度为O(1),是一种高效的解决方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。