A row or column is considered palindromic if its values read the same forward and backward.
You can flip any number of cells in grid from 0 to 1, or from 1 to 0.
Return the minimum number of cells that need to be flipped to make either all rows palindromic or all columns palindromic.
Example 1:
Input:grid = [[1,0,0],[0,0,0],[0,0,1]]
Output:2
Explanation:
Flipping the highlighted cells makes all the rows palindromic.
Example 2:
Input:grid = [[0,1],[0,1],[0,0]]
Output:1
Explanation:
Flipping the highlighted cell makes all the columns palindromic.
Example 3:
Input:grid = [[1],[0]]
Output:0
Explanation:
All rows are already palindromic.
Constraints:
m == grid.length
n == grid[i].length
1 <= m * n <= 2 * 105
0 <= grid[i][j] <= 1
Solutions
Solution 1: Counting
We separately count the number of flips for rows and columns, denoted as $\textit{cnt1}$ and $\textit{cnt2}$, respectively. Finally, we take the minimum of the two.
The time complexity is $O(m \times n)$, where $m$ and $n$ are the number of rows and columns of the matrix $\textit{grid}$, respectively.