Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.27 KB | None | 0 0
  1. /*
  2. https://leetcode.com/problems/score-after-flipping-matrix/
  3. Runtime: 0 ms, faster than 100.00% of Java online submissions for Score After Flipping Matrix.
  4. Memory Usage: 36.2 MB, less than 100.00% of Java online submissions for Score After Flipping Matrix.
  5. */
  6. class Solution {
  7.     public int matrixScore(int[][] A) {
  8.         int il = A.length, jl = A[0].length;
  9.         // flip rows
  10.         for (int i = 0; i < il; i++) {
  11.             int[] r = A[i];
  12.             if (r[0] == 0) {
  13.                 for (int j = 0; j < jl; j++) {
  14.                     r[j] = r[j] == 0 ? 1 : 0;
  15.                 }
  16.             }
  17.         }
  18.         // flip columns
  19.         for (int j = 1; j < jl; j++) {
  20.             int zeros = 0;
  21.             for (int i = 0; i < il; i++) {
  22.                 if (A[i][j] == 0) ++zeros;
  23.             }
  24.             if (zeros > il - zeros) {
  25.                 for (int i = 0; i < il; i++) {
  26.                     A[i][j] = A[i][j] == 0 ? 1 : 0;
  27.                 }
  28.             }
  29.         }
  30.         int ans = 0;
  31.         for (int i = 0; i < il; i++) {
  32.             int num = 0;
  33.             int[] row = A[i];
  34.             for (int j = 0; j < jl; j++) {
  35.                 num = (num << 1) + row[j];
  36.             }
  37.             ans += num;
  38.         }
  39.         return ans;
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement