zoukankan      html  css  js  c++  java
  • [Swift]LeetCode1284. 转化为全零矩阵的最少反转次数 | Minimum Number of Flips to Convert Binary Matrix to Zero Matrix

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

    Given a m x n binary matrix mat. In one step, you can choose one cell and flip it and all the four neighbours of it if they exist (Flip is changing 1 to 0 and 0 to 1). A pair of cells are called neighboors if they share one edge.

    Return the minimum number of steps required to convert mat to a zero matrix or -1 if you cannot.

    Binary matrix is a matrix with all cells equal to 0 or 1 only.

    Zero matrix is a matrix with all cells equal to 0.

    Example 1:


    Input: mat = [[0,0],[0,1]]
    Output: 3
    Explanation: One possible solution is to flip (1, 0) then (0, 1) and finally (1, 1) as shown.
    Example 2:

    Input: mat = [[0]]
    Output: 0
    Explanation: Given matrix is a zero matrix. We don't need to change it.
    Example 3:

    Input: mat = [[1,1,1],[1,0,1],[0,0,0]]
    Output: 6
    Example 4:

    Input: mat = [[1,0,0],[1,0,0]]
    Output: -1
    Explanation: Given matrix can't be a zero matrix
     

    Constraints:

    m == mat.length
    n == mat[0].length
    1 <= m <= 3
    1 <= n <= 3
    mat[i][j] is 0 or 1.


    给你一个 m x n 的二进制矩阵 mat。

    每一步,你可以选择一个单元格并将它反转(反转表示 0 变 1 ,1 变 0 )。如果存在和它相邻的单元格,那么这些相邻的单元格也会被反转。(注:相邻的两个单元格共享同一条边。)

    请你返回将矩阵 mat 转化为全零矩阵的最少反转次数,如果无法转化为全零矩阵,请返回 -1 。

    二进制矩阵的每一个格子要么是 0 要么是 1 。

    全零矩阵是所有格子都为 0 的矩阵。

    示例 1:

    输入:mat = [[0,0],[0,1]]
    输出:3
    解释:一个可能的解是反转 (1, 0),然后 (0, 1) ,最后是 (1, 1) 。
    示例 2:

    输入:mat = [[0]]
    输出:0
    解释:给出的矩阵是全零矩阵,所以你不需要改变它。
    示例 3:

    输入:mat = [[1,1,1],[1,0,1],[0,0,0]]
    输出:6
    示例 4:

    输入:mat = [[1,0,0],[1,0,0]]
    输出:-1
    解释:该矩阵无法转变成全零矩阵
     

    提示:

    m == mat.length
    n == mat[0].length
    1 <= m <= 3
    1 <= n <= 3
    mat[i][j] 是 0 或 1 。

  • 相关阅读:
    Linux内核分析--系统调用【转】
    Linux slab分配器【转】
    简化指令与复杂指令的区别【转】
    冯诺依曼体系结构与哈佛体系结构的区别【转】
    bzero, memset ,setmem 区别【转】
    写一个标准宏MIN,输入两个参数,返回较小的
    红黑树(一)之原理和算法的详细分析【转】
    socket心跳包机制总结【转】
    Linux文件时间详解ctime、mtime、atime【转】
    【转】图文并茂 Ubuntu使用Thunderbird方法指南
  • 原文地址:https://www.cnblogs.com/strengthen/p/12151568.html
Copyright © 2011-2022 走看看