欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode:861. 翻转矩阵后的得分(贪心)

程序员文章站 2022-07-12 12:37:07
...

链接:https://leetcode-cn.com/problems/score-after-flipping-matrix/
先做行翻转使得每行第一个数都是一,然后按列统计0和1的数量,选择多的那一个乘以底数(2n2的n次方)即可。
java代码:

class Solution {
    public int matrixScore(int[][] A) {
        int m = A.length;
        int n = A[0].length;
        for(int i = 0;i<m;i++)
            if(A[i][0]==0)
                for(int j = 0;j<n;j++)
                    A[i][j] = 1-A[i][j];
        int ans = 0;
        int base = 1;
        int one = 0;
        for(int i =n-1;i>=0;i--)
        {
            one = 0;
            for(int j = 0;j<m;j++)
                if(A[j][i]==1)
                    one++;
            ans += Math.max(one,m-one)*base;
            base*=2;
        }
        return ans;

    }
}