【leetcode】1252. Cells with Odd Values in a Matrix

題目以下:app

Given n and m which are the dimensions of a matrix initialized by zeros and given an array indices where indices[i] = [ri, ci]. For each pair of [ri, ci] you have to increment all cells in row ri and column ci by 1.spa

Return the number of cells with odd values in the matrix after applying the increment to all indices.code

Example 1:blog

Input: n = 2, m = 3, indices = [[0,1],[1,1]]
Output: 6
Explanation: Initial matrix = [[0,0,0],[0,0,0]].
After applying first increment it becomes [[1,2,1],[0,1,0]].
The final matrix will be [[1,3,1],[1,3,1]] which contains 6 odd numbers.

Example 2:ci

Input: n = 2, m = 2, indices = [[1,1],[0,0]]
Output: 0
Explanation: Final matrix = [[2,2],[2,2]]. There is no odd number in the final matrix.

Constraints:rem

  • 1 <= n <= 50
  • 1 <= m <= 50
  • 1 <= indices.length <= 100
  • 0 <= indices[i][0] < n
  • 0 <= indices[i][1] < m

解題思路:首先遍歷indices,計算出每行每列分別作了幾回+1的操做。而後再遍歷matrix,根據matrix[i][j]求得對應的i行和j列分別作了幾回+1,判斷二者之和的奇偶性便可。get

代碼以下:it

class Solution(object):
    def oddCells(self, n, m, indices):
        """
        :type n: int
        :type m: int
        :type indices: List[List[int]]
        :rtype: int
        """
        dic_row = {}
        dic_column = {}
        for (r,c) in indices:
            dic_row[r] = dic_row.setdefault(r,0) + 1
            dic_column[c] = dic_column.setdefault(c, 0) + 1
        res = 0
        for i in range(n):
            for j in range(m):
                count = dic_row.get(i,0) + dic_column.get(j,0)
                if count % 2 == 1:res += 1
        return res
相關文章
相關標籤/搜索