1252. 奇数值单元格的数目
这个题的难点就是真的就是读懂题意,也就是理解多维数组是横坐标纵坐标是咋回事 ,就可以迎刃而解,
解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
输入:n = 2, m = 3, indices = [[0,1],[1,1]]
输出:6
解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
第1次[0,1]操作 先对第0行加1处理[[1,1,1],[0,0,0]] 然后对对第1列加1处理[[1,2,1],[0,1,0]]。
第2次[1,1]操作 先对第1行加1处理[[1,2,1],[1,2,1]] 然后对对第1列加1处理[[1,3,1],[1,3,1]]。
最后的矩阵是 [[1,3,1],[1,3,1]],里面有 6 个奇数。
1 先构造出多维数组
2 indices 也是一个多维数组 里面的每个一个数组 第一个元素代表横行 第二个代表列
3 先对横行做加1 在对纵行加1
package main
import "fmt"
func oddCells(n int, m int, indices [][]int) int {
grip :=make([][]int,n)
for i:=0;i<n;i++{
grip[i] = make([]int,m)
}
for i:=0;i<len(indices);i++{
r := indices[i][0]
for j:=0;j<len(grip[r]);j++{
grip[r][j]++
}
c := indices[i][1]
for j:=0;j<len(grip);j++{
grip[j][c]++
}
}
var res int
for i:=0;i<n;i++{
for j:=0;j<m;j++{
if grip[i][j]%2!=0{
res++
}
}
}
return res
}
func main() {
fmt.Println(oddCells(2,3,[][]int{{0,1},{1,1}}))
fmt.Println(oddCells(2,2,[][]int{{1,1},{0,0}}))
}