Categorygithub.com/szhou12/leetcode-goleetcode3212-Count-Submatrices-With-Equal-Frequency-of-X-and-Y
package
0.0.0-20241220224003-b7cf03a90b2b
Repository: https://github.com/szhou12/leetcode-go.git
Documentation: pkg.go.dev
# README
3212. Count Submatrices With Equal Frequency of X and Y
Solution idea
2-D Prefix Sum
- Definition
PrefixSumX[][]
andPrefixSumY[][]
of shape(m+1, n+1)
- i.e.
PrefixSum[i+1][j+1]
对应grid[i][j]
- i.e.
PrefixSumX[i+1][j+1] :=
the number ofX
in the submatrixgrid[0][0] -> grid[i][j]
PrefixSumY[i+1][j+1] :=
the number ofY
in the submatrixgrid[0][0] -> grid[i][j]
- 边界条件:
PrefixSumX[0][0:n+1] = 0
,PrefixSumY[0:m+1][0] = 0
(0这里表示无意义,只为了方便recurrence计算)
- Recurrence: Venn diagram (inclusive-exclusive principle)
PrefixSumX[i+1][j+1] = (PrefixSumX[i][j+1] + PrefixSumX[i+1][j] - PrefixSumX[i][j]) + (grid[i][j] == 'X')
PrefixSumY[i+1][j+1] = (PrefixSumY[i][j+1] + PrefixSumY[i+1][j] - PrefixSumY[i][j]) + (grid[i][j] == 'Y')
(0, 0) -> (i, j)
is a valid submatrix if:PrefixSumX[i+1][j+1] > 0
: has at least one XPrefixSumX[i+1][j+1] == PrefixSumY[i+1][j+1] > 0
Time complexity = $O(m*n)$