题目链接:1252. 奇数值单元格的数目
统计累加了奇数次的行和列的值:
- 如果一个单元格在行和列上都累加了奇数次,那它的值是偶数;
- 如果一个单元格在行和列上都累加了偶数次,那它的值也是偶数;
- 用总的单元格的数目减去上面的两个值,就是奇数值的单元格的数目。
from collections import Counter
from typing import List
class Solution:
def oddCells(self, m: int, n: int, indices: List[List[int]]) -> int:
rows, cols = zip(*indices)
odd_rows, odd_cols = \
sum(1 for v in Counter(rows).values() if v & 1 == 1), sum(1 for v in Counter(cols).values() if v & 1 == 1)
return m * n - odd_rows * odd_cols - (m - odd_rows) * (n - odd_cols)