问题
思路
枚举
解题过程
比较容易想到用两个一维数组记录矩阵的每一行和每一列是否存在为0
的元素,然后通过记录的两个数组重新遍历矩阵进行置零操作。
不过题目要求减少空间复杂度到O(1)
,核心思想与上述方法类似,唯一的不同是我们需要利用矩阵的第一行和第一列替代上述方法中占据了额外空间的两个一维数组。当然我们需要提前确认第一行和第一列中是否存在值为0
的元素,如果存在则需要记录该信息,并且在最后对第一行和第一列进行处理。
复杂度
- 时间复杂度: O ( m n ) O(mn) O(mn)
- 空间复杂度: O ( m + n ) O(m+n) O(m+n) or O ( 1 ) O(1) O(1)
Code
class