Leetcode 矩阵置零

2021-09-26  本文已影响0人  小码A梦

题目描述(中等难度)

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

进阶

示例 1:

示例 1

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例2:

示例2

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

解题思路

重置零表示矩阵中如果有一个零,那么将其同行同列都设为0,下图第二行,第二列为零,使用红色框标识元素都需要设置成零。


解题思路

解法一 (空间复杂度 O(mn))

为何要使用复制矩阵呢?如果直接遍历矩阵,如果第一行第一列为零,做了重置零以后,行全部都重置为零,遍历后面的列全部都会设置成零。

解法一

解法二 (空间复杂度O(m+n))

解法三 (空间复杂度O(1))

总结

上一篇下一篇

猜你喜欢

热点阅读