zoukankan      html  css  js  c++  java
  • [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 }
  • 相关阅读:
    Python 遍历文件 读取文件夹里面的所有文件
    生活 帝国霸略 辅助工具的实现
    生活 帝国霸略 更换账户登陆 电脑登陆iphone手机账户 电脑手机同步登陆
    Python 颜色检测
    Python 指定窗口截屏
    Python 图片裁剪
    Python 窗口查找
    ES5新增的数组方法
    ES5对象新增的方法
    谈谈对文档碎片的理解
  • 原文地址:https://www.cnblogs.com/strengthen/p/11831506.html
Copyright © 2011-2022 走看看