LeetCode 73 矩阵置零 - 原地算法

LeetCode 73 矩阵置零 - 原地算法

https://leetcode.cn/problems/set-matrix-zeroes/description/?envType=study-plan-v2&envId=top-interview-150

思路

目标是判断每一行、每一列是否需要置零。常规做法需要 m + n 的额外空间,但题目要求原地修改,所以要复用矩阵本身做标记。

  • 某一行一旦出现 0,该行最终都会被置零,因此可以用该行第一个元素作为行标记。
  • 同理,可用每一列的第一个元素作为列标记。
  • 另外用两个额外变量记录第一行和第一列是否原本含 0,避免标记过程覆盖原信息。

如果第 i 行原本没有 0,那么该行第一个元素不会被错误覆盖,原数组信息可以被正确保留。