u
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package top100liked
|
||||
|
||||
// https://leetcode.cn/problems/set-matrix-zeroes/description/?envType=study-plan-v2&envId=top-100-liked
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func setZeroes(matrix [][]int) {
|
||||
rowLength := len(matrix)
|
||||
columeLength := len(matrix[0])
|
||||
|
||||
rowsHaveZero := make([]bool, rowLength)
|
||||
columesHaveZero := make([]bool, columeLength)
|
||||
|
||||
for rowIdx, row := range matrix {
|
||||
for columeIdx := range row {
|
||||
if matrix[rowIdx][columeIdx] == 0 {
|
||||
if !columesHaveZero[columeIdx] {
|
||||
for i := range rowIdx {
|
||||
matrix[i][columeIdx] = 0
|
||||
}
|
||||
}
|
||||
if !rowsHaveZero[rowIdx] {
|
||||
for i := range columeIdx {
|
||||
matrix[rowIdx][i] = 0
|
||||
}
|
||||
}
|
||||
rowsHaveZero[rowIdx] = true
|
||||
columesHaveZero[columeIdx] = true
|
||||
}
|
||||
if rowsHaveZero[rowIdx] || columesHaveZero[columeIdx] {
|
||||
matrix[rowIdx][columeIdx] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestS18(t *testing.T) {
|
||||
var matrix [][]int
|
||||
|
||||
matrix = [][]int{{1, 1, 1}, {1, 0, 1}, {1, 1, 1}}
|
||||
setZeroes(matrix)
|
||||
fmt.Printf("%+v\n", matrix)
|
||||
|
||||
matrix = [][]int{{0, 1, 2, 0}, {3, 4, 5, 2}, {1, 3, 1, 5}}
|
||||
setZeroes(matrix)
|
||||
fmt.Printf("%+v\n", matrix)
|
||||
}
|
||||
Reference in New Issue
Block a user