LeetCode 100234. 在矩阵上写出字母 Y 所需的最少操作次数
原题链接
中等
作者:
我是java同学
,
2024-03-04 07:51:52
,
所有人可见
,
阅读 25
class Solution {
public:
int minimumOperationsToWriteY(vector<vector<int>>& grid) {
vector<int> cnt1(3), cnt2(3);
int n = grid.size();
int mid = n / 2;
for (int i = 0; i < mid; i ++ ) {
cnt1[grid[i][i]] ++ ;
cnt1[grid[i][n - i - 1]] ++ ;
for (int j = 0; j < n; j ++ )
if (i != j && j != n - i - 1)
cnt2[grid[i][j]] ++ ;
}
for (int i = mid; i < n; i ++ ) {
cnt1[grid[i][mid]] ++ ;
for (int j = 0; j < n; j ++ )
if (j != mid) cnt2[grid[i][j]] ++ ;
}
int res = 0;
for (int i = 0; i < 3; i ++ )
for (int j = 0; j < 3; j ++ )
if (i != j)
res = max(res, cnt1[i] + cnt2[j]);
return n * n - res;
}
};