Lintcode162 Set Matrix Zeroes solution 题解

来源:互联网 发布:js弹出窗口居中 编辑:程序博客网 时间:2024/06/05 16:38

【题目描述】

Given a matrix, if an element is 0, set its entire row and column to 0. Do it in place.

给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。

需要在原矩阵上完成操作。

【题目链接】

www.lintcode.com/en/problem/set-matrix-zeroes/

【题目解析】

此题可新建一个和matrix等大小的矩阵,用原数组的第一行第一列来记录各行各列是否有0.

- 先扫描第一行第一列,如果有0,则将各自的flag设置为true

- 然后扫描除去第一行第一列的整个数组,如果有0,则将对应的第一行和第一列的数字赋0

- 再次遍历除去第一行第一列的整个数组,如果对应的第一行和第一列的数字有一个为0,则将当前值赋0

- 最后根据第一行第一列的flag来更新第一行第一列

【参考答案】

www.jiuzhang.com/solutions/set-matrix-zeroes/