本文主要是介绍LeetCode讲解篇之面试题 01.08. 零矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 题目描述
- 题解思路
- 题解代码
题目描述
题解思路
遍历矩阵,若当前元素为零,则将该行和该列的第一个元素置零
遍历第一行,若当前元素为零,则将当前列置零
遍历第一列,若当前元素为零,则将当前行置零
题解代码
func setZeroes(matrix [][]int) {m, n := len(matrix) - 1, len(matrix[0]) - 1for i := m; i >= 0; i-- {if matrix[i][0] == 0 {defer func() {for i := m; i >= 0; i-- {matrix[i][0] = 0} }()break}}for i := n; i >= 0; i-- {if matrix[0][i] == 0 {defer func() {for i := n; i >= 0; i-- {matrix[0][i] = 0}}()break}}for i := m; i > 0; i-- {for j := n; j > 0; j-- {if matrix[i][j] == 0 {matrix[i][0] = 0matrix[0][j] = 0}}}for i := m; i > 0; i-- {if matrix[i][0] == 0 {for j := n; j > 0; j-- {matrix[i][j] = 0}}}for i := n; i > 0; i-- {if matrix[0][i] == 0 {for j := m; j > 0; j-- {matrix[j][i] = 0}}}
}
这篇关于LeetCode讲解篇之面试题 01.08. 零矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!