链接: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;
}
};