作者:
JIWP (JIWP)
2024-11-21 23:21:552257. Count Unguarded Cells in the Grid
有m*n的二維矩陣
在這個二維矩陣上有守衛和牆壁
守衛可以看向4個方向(東西南北)直到被牆壁擋住
請問這個矩陣上有個cell是不會被守衛看到的?
思路:
老實照著題目做
建立1個二維矩陣
將守衛和牆壁的所在地點設為1
接著每個守衛往4個方向開始走直到碰到1為止,把走過的地方設成2
最後去算不是1、2的cell有幾個
golang code :
func countUnguarded(m int, n int, guards [][]int, walls [][]int) int {
arr := make([]byte, n*m)
for _, val := range guards {
arr[val[0]*n+val[1]] = 1
}
for _, val := range walls {
arr[val[0]*n+val[1]] = 1
}
for _, val := range guards {
i, j := val[0], val[1]
for i_tmp := i + 1; i_tmp < m && arr[i_tmp*n+j] != 1; i_tmp++ {
arr[i_tmp*n+j] = 2
}
for i_tmp := i - 1; i_tmp > -1 && arr[i_tmp*n+j] != 1; i_tmp