[LeetCode] Count Submatrices With Equal Frequency of X and Y

3212. Count Submatrices With Equal Frequency of X and Y

Given a 2D character matrix grid, where grid[i][j] is either 'X', 'Y', or '.', return the number of submatrices that contains:

  • grid[0][0]
  • an equal frequency of 'X' and 'Y'.
  • at least one 'X'.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
int numberOfSubmatrices(vector<vector<char>>& A) {
int n = A.size(), m = A[0].size(), res = 0;
vector<pair<int,int>> dp(m);
for(auto& vec : A) {
int sum = 0, fl = 0;
for(int i = 0; i < m; i++) {
if(vec[i] == 'X') {
fl = 1;
sum++;
} else if(vec[i] == 'Y') {
sum--;
}
dp[i].first |= fl;
dp[i].second += sum;
if(dp[i].first and dp[i].second == 0) res++;
}
}
return res;
}
};

Author: Song Hayoung
Link: https://songhayoung.github.io/2024/07/07/PS/LeetCode/count-submatrices-with-equal-frequency-of-x-and-y/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.