set_matrix_zeros
set_matrix_zeros.go 源码
package main
// 记录0出现的位置,然后再遍历置位0
func setZeroes1(matrix [][]int) {
hor, ver := make(map[int]bool), make(map[int]bool)
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if matrix[i][j] == 0 {
hor[i], ver[j] = true, true
}
}
}
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if hor[i] || ver[j] {
matrix[i][j] = 0
}
}
}
}
func setZeroes2(matrix [][]int) {
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if matrix[i][j] == 0 {
helper(i, j, matrix)
}
}
}
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if matrix[i][j] == '*' {
matrix[i][j] = 0
}
}
}
}
func helper(i, j int, matrix [][]int) {
for k := 0; k < len(matrix); k++ {
if matrix[k][j] != 0 {
matrix[k][j] = '*'
}
}
for k := 0; k < len(matrix[i]); k++ {
if matrix[i][k] != 0 {
matrix[i][k] = '*'
}
}
}
你可能感兴趣的文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦