-
行变成回文:
- 对于每一行,遍历前半部分的元素,与后半部分的元素比较。
- 如果不相等,计数器加 1,表示需要翻转一次。
-
列变成回文:
- 将矩阵转置,使用与行类似的方式对每一列进行统计。
- 可以使用 Python 的
zip(*grid)
来简化列的统计。
-
取最小值:
- 分别计算所有行和所有列变成回文的翻转次数。
- 返回两者的最小值。
class Solution:def minFlips(self, grid: List[List[int]]) -> int:diff_row=0for row in grid:for j in range(len(row)//2):if row[j]!=row[-1-j]:diff_row+=1diff_col=0for col in zip(*grid):for j in range(len(col)//2):if col[j]!=col[-1-j]:diff_col+=1return min(diff_col,diff_row)