【每日一题】782. 变为棋盘

84 阅读1分钟

题目描述

一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置。

返回将这个矩阵变为  “棋盘”  所需的最小移动次数 。如果不存在可行的变换,输出 -1。 “棋盘” 是指任意一格的上下左右四个方向的值均与本身不同的矩阵。

 

示例 1:

输入: board = [[0,1,1,0],[0,1,1,0],[1,0,0,1],[1,0,0,1]]

输出: 2

解释:一种可行的变换方式如下,从左到右: 第一次移动交换了第一列和第二列。 第二次移动交换了第二行和第三行。

来源:力扣(LeetCode) 链接:leetcode.cn/problems/tr… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

  1. 图片就不搞了,有兴趣的伙伴可以去链接里面看题目
  2. 思路是用矩阵的思维解题, 目前想到的是对矩阵进行任意基础变换不改变矩阵的秩, 因此想通过对于 n*n的矩阵进行 奇数和偶数行的讨论
  3. 或者是通过扫描每列的 1 的个数进行分析

解法

//todo 待完善