1class Solution {2public int matrixScore(int[][] grid) {3ArrayList<Integer> arr = new ArrayList<Integer>();4for (int i = 0; i < grid.length; i++) {5boolean flip = false;6if (grid[i][0] == 0) {7grid[i][0] ^= 1;8flip = true;9}10if (flip) {11for (int j = 1; j < grid[0].length; j++) {12grid[i][j] ^= 1;13}14}15}16for (int i = 1; i < grid[0].length; i++) {17int zero = 0;18int one = 0;19for (int j = 0; j < grid.length; j++) {20if (grid[j][i] == 0) {21zero++;22} else {23one++;24}25}26if (zero > one) {27arr.add(i);28}29}30for (int i : arr) {31for (int j = 0; j < grid.length; j++) {32grid[j][i] ^= 1;33}34}35int sum = 0;36for (int i = 0; i < grid.length; i++) {37String num = "";38for (int j = 0; j < grid[0].length; j++) {39num += String.valueOf(grid[i][j]);40}41sum += Integer.valueOf(num, 2);42}43return sum;44}45}