链接:https://leetcode-cn.com/problems/cells-with-odd-values-in-a-matrix/
记录每个行与列被增加的次数,最终为奇数的个数为
增
加
奇
数
次
的
行
数
∗
m
+
增
加
奇
数
次
的
列
数
∗
n
−
重
叠
的
部
分
增加奇数次的行数*m+增加奇数次的列数*n-重叠的部分
增加奇数次的行数∗m+增加奇数次的列数∗n−重叠的部分
C++代码:
class Solution {
public:
int oddCells(int n, int m, vector<vector<int>>& indices) {
int len = max(n,m);
vector<vector<int>> record(2, vector<int>(len,0));
for(int i = 0;i<indices.size();i++)
{
record[0][indices[i][0]]^=1;
record[1][indices[i][1]]^=1;
}
int row = 0,col = 0;
for(int i = 0;i<n;i++)
if(record[0][i]==1)
row++;
for(int i = 0;i<m;i++)
if(record[1][i]==1)
col++;
return row*m+col*n-2*row*col;
}
};
本文介绍了一种高效计算经过一系列操作后,矩阵中奇数值单元格数量的方法。通过记录每行每列被操作的次数,利用这些信息计算出最终矩阵中奇数值单元格的总数。文章提供了详细的算法思路及C++实现代码。

被折叠的 条评论
为什么被折叠?



