1
var matrixScore = function (grid) {2
let flip = (i, rowOrCol) => {3
// helper function for flipping row and column5
for (let idx in grid[i]) {6
grid[i][idx] = grid[i][idx] === 1 ? 0 : 1;9
for (let idx in grid) {10
grid[idx][i] = grid[idx][i] === 1 ? 0 : 1;15
for (let i = 0; i < grid.length; i++) {16
// flip rows only if leftmost bit is 017
if (grid[i][0] !== 1) {22
for (let i = 1; i < grid[0].length; i++) {23
//flip column only if the number of 1s is less than 0s, as all bits hold equal values in a column28
if (ones < grid.length / 2) flip(i, false);31
return grid.reduce((a, b) => a + parseInt(b.join(""), 2), 0);