leetcode73 矩阵置零

题目

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

示例

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
在这里插入图片描述

解析

这道题题目上要求用原地算法,先说开辟额外辅助空间的方法吧,原理上就是对于行和列开辟两个布尔型数组,先遍历一遍矩阵,将为0的位置(行和列的下标)置为0,完事后再遍历一遍矩阵,把对应位置的值置为0即可。

func setZeroes(matrix [][]int) {
	row := make([]bool, len(matrix))
	col := make([]bool, len(matrix[0]))

	for i, r := range matrix {
		for j, v := range r {
			if v == 0 {
				row[i] = true
				col[j] = true
			}
		}
	}

	for i, r := range matrix {
		for j := range r {
			if row[i] || col[j] {
				r[j] = 0
			}
		}
	}
}

另外还有不适用额外空间,只需要定义变量的写法,但感觉有点复杂了,先不写了

相关推荐

  1. Leetcode 73 矩阵

    2024-06-15 16:58:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 16:58:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 16:58:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 16:58:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 16:58:03       18 阅读

热门阅读

  1. Web 品质样式表

    2024-06-15 16:58:03       6 阅读
  2. 论徐州高防IP的作用有哪些?

    2024-06-15 16:58:03       7 阅读
  3. postgresql 创建函数

    2024-06-15 16:58:03       8 阅读
  4. 观察者模式

    2024-06-15 16:58:03       8 阅读
  5. WebSocket定时前端推送:深度解析与实战挑战

    2024-06-15 16:58:03       6 阅读
  6. ReentrantReadWriteLock:深度解析与源码探险

    2024-06-15 16:58:03       7 阅读