• [Swift]LeetCode1252. 奇数值单元格的数目 | Cells with Odd Values in a Matrix


    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(let_us_code)
    ➤博主域名:https://www.zengqiang.org
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/11831506.html
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    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

    给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0

    另有一个索引数组 indicesindices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。

    你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1

    请你在执行完所有 indices 指定的增量操作后,返回矩阵中 「奇数值单元格」 的数目。

    示例 1:

    输入:n = 2, m = 3, indices = [[0,1],[1,1]]
    输出:6
    解释:最开始的矩阵是 [[0,0,0],[0,0,0]]。
    第一次增量操作后得到 [[1,2,1],[0,1,0]]。
    最后的矩阵是 [[1,3,1],[1,3,1]],里面有 6 个奇数。
    

    示例 2:

    输入:n = 2, m = 2, indices = [[1,1],[0,0]]
    输出:0
    解释:最后的矩阵是 [[2,2],[2,2]],里面没有奇数。

    提示:

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

    Runtime: 16 ms
    Memory Usage: 20.9 MB
     1 class Solution {
     2     func oddCells(_ n: Int, _ m: Int, _ indices: [[Int]]) -> Int {
     3         var row:[Int] = [Int](repeating: 0, count: n)
     4         var col:[Int] = [Int](repeating: 0, count: m)
     5         for idx in indices
     6         {
     7             row[idx[0]] ^= 1// if row idx[0] appears odd times, it will correspoind to true.
     8             col[idx[1]] ^= 1 // if column idx[1] appears odd times, it will correspoind to true.
     9         }
    10         var cnt:Int = 0
    11         for i in 0..<n
    12         {
    13             for j in 0..<m
    14             {
    15                 cnt += (row[i] ^ col[j]) != 0 ? 1 : 0; // only cell (i, j) with odd times count of row + column would get odd values.
    16             }
    17         }
    18         return cnt
    19     }
    20 }
  • 相关阅读:
    【luogu P1040 加分二叉树】 题解
    【luogu P4711 「化学」相对分子质量】 题解
    【luogu P2319 [HNOI2006]超级英雄】 题解
    【luogu P1640 [SCOI2010]连续攻击游戏】 题解
    【luogu P3369 普通平衡树(Treap/SBT)】 模板 Splay
    【luogu P2234 [HNOI2002]营业额统计】 题解
    【luogu P1494 [国家集训队]小Z的袜子】 题解
    【luogu P3901 数列找不同】 题解
    【luogu P3807 卢卡斯定理】 模板
    JAVA IO 体系
  • 原文地址:https://www.cnblogs.com/strengthen/p/11831506.html
Copyright © 2020-2023  润新知