Files
leetcode/top-100-liked/18/18_test.go
T
2026-06-13 03:04:54 +10:00

51 lines
1.1 KiB
Go

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)
}