2
flips = [11, 23, 38, 89, 186, 308, 200, 464, 416]4
def minFlips(self, mat: List[List[int]]) -> int:5
mask = self.make_mask(mat)6
check = self.make_mask([[1 for c in r] for r in mat])15
for i in range(len(mat)):16
for j in range(len(mat[0])):18
if 1 << index & flips:19
mask ^= self.flips[index]20
if check & ~mask == check:21
steps = self.count_bits(x & check)22
if min_steps < 0 or steps < min_steps:26
def make_mask(self, mat):30
if i < len(mat) and j < len(mat[0]):31
d |= mat[i][j] << (i * 3 + j)34
def count_bits(self, x):38
count += int(bool(x & i))