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


題目如下:

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.

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

Example 1:

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:

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:

  • 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,判斷兩者之和的奇偶性即可。

代碼如下:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM