2661. 找出叠涂元素

2661. 找出叠涂元素

解法一: 哈希

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
func firstCompleteIndex(arr []int, mat [][]int) int {
m := len(mat)
n := len(mat[0])
type point struct {
x int
y int
}
hash := make([]point, m * n + 1)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
hash[mat[i][j]] = point{
x: i,
y: j,
}
}
}
rows := make([]int, m)
cols := make([]int, n)
for i, num := range arr {
r, c := hash[num].x, hash[num].y
rows[r]++
cols[c]++
if rows[r] == n || cols[c] == m {
return i
}
}
return -1
}
作者

wuhunyu

发布于

2023-12-01

更新于

2023-12-01

许可协议