public class Solution
{
public int MatrixScore(int[][] A)
{
var row = A.GetLength();
var col = A[].GetLength();
//判断最高位是否为1
for (int i = ; i < row; i++)
{
if (!(A[i][] == ))//不是1,则移动此行
{
for (int j = ; j < col; j++)
{
if (A[i][j] == )
{
A[i][j] = ;
}
else
{
A[i][j] = ;
}
}
}
} //遍历每一列,计算0和1的数量,如果0多,则移动
for (int j = ; j < col; j++)
{
var sum0 = ;
var sum1 = ;
for (int i = ; i < row; i++)
{
if (A[i][j] == )
{
sum0++;
}
else
{
sum1++;
}
}
if (sum0 > sum1)
{
for (int i = ; i < row; i++)
{
if (A[i][j] == )
{
A[i][j] = ;
}
else
{
A[i][j] = ;
}
}
}
} //计算最后的二进制数
var sum = ;
for (int i = ; i < row; i++)
{
var rowsum = ;
for (int j = col - ; j >= ; j--)
{
var cur = A[i][j] * (int)Math.Pow(, col - - j);
rowsum += cur;
}
sum += rowsum;
} return sum;
}
}