Skip to content

Commit f93fb78

Browse files
authored
Update Score After Flipping Matrix.java
1 parent 076472a commit f93fb78

File tree

1 file changed

+20
-46
lines changed

1 file changed

+20
-46
lines changed
Lines changed: 20 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,33 @@
11
class Solution {
2-
public int matrixScore(int[][] A) {
3-
for (int i=0; i<A.length; i++) {
4-
int actualSum = getDecimalValue(A[i], false);
5-
int toggledSum = getDecimalValue(A[i], true);
6-
7-
if (toggledSum > actualSum) {
8-
for (int j=0; j<A[i].length; j++) {
9-
A[i][j] ^= 1;
2+
public int matrixScore(int[][] grid) {
3+
int rows = grid.length;
4+
int cols = grid[0].length;
5+
for (int i = 0; i < rows; i++) {
6+
if (grid[i][0] == 0) {
7+
for (int j = 0; j < cols; j++) {
8+
grid[i][j] = 1 - grid[i][j];
109
}
1110
}
1211
}
13-
14-
for (int i=0; i<A[0].length; i++) {
15-
int numZeroes = 0;
16-
int numOnes = 0;
17-
18-
for (int j=0; j<A.length; j++) {
19-
if (A[j][i] == 1 ) {
20-
numOnes++;
21-
}
22-
else {
23-
numZeroes++;
12+
for (int j = 1; j < cols; j++) {
13+
int countZero = 0;
14+
for (int[] row : grid) {
15+
if (row[j] == 0) {
16+
countZero++;
2417
}
2518
}
26-
27-
if (numZeroes > numOnes) {
28-
for (int j=0; j<A.length; j++) {
29-
A[j][i] ^= 1;
19+
if(countZero > rows-countZero) {
20+
for(int i = 0; i < rows; i++) {
21+
grid[i][j] = 1 - grid[i][j];
3022
}
3123
}
3224
}
33-
34-
int maxSum = 0;
35-
for (int[] arr : A) {
36-
maxSum += getDecimalValue(arr, false);
37-
}
38-
39-
return maxSum;
40-
}
41-
42-
private int getDecimalValue(int[] arr, boolean isToggled) {
43-
int sum = 0;
44-
int pow = 0;
45-
46-
for (int i=arr.length-1; i>=0; i--) {
47-
if (isToggled) {
48-
sum += Math.pow(2, pow) * (arr[i] ^ 1);
49-
}
50-
else {
51-
sum += Math.pow(2, pow) * arr[i];
25+
int score = 0;
26+
for (int[] row : grid) {
27+
for (int j = 0; j < cols; j++) {
28+
score += row[j] << (cols - j - 1);
5229
}
53-
54-
pow++;
5530
}
56-
57-
return sum;
31+
return score;
5832
}
5933
}

0 commit comments

Comments
 (0)