原题链接
解题思路:
1.先遍历整个矩阵,记录为0的索引值,存放在字典中,字典的KEY为结构体,记录坐标
2.遍历字典,KEY为坐标结构体,根据特性来重置矩阵
golang
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
func setZeroes(matrix [][]int) {
m := len(matrix)
n := len(matrix[0])
dict := map[Point]struct{}{}
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
if matrix[i][j] == 0 {
p := Point{Row: i, Col: j}
dict[p] = struct{}{}
}
}
}
for key, _ := range dict {
// 所在列置为0
for i := 0; i < m; i++ {
matrix[i][key.Col] = 0
}
// 所在行置为0
for j := 0; j < n; j++ {
matrix[key.Row][j] = 0
}
}
}
// 定义一个结构体,记录索引位置
type Point struct {
Row int
Col int
}
|