2020 12 7 翻轉矩陣後的得分

2022-06-18 04:36:19 字數 779 閱讀 5403

本題的目標是通過多次行或列的反轉,以使得陣列中各行所表示的二進位制數的值之和最大。

經分析可知,要使和最大,須優先使得列下標值較小的列中1的個數最多。所以得到如下思路:

通過行反轉使得第一列的所有元素均為1(即每行的第乙個元素均為1)

然後遍歷除第一列外的每一列,求出每列中1的個數,若其小於行數的一半,便對該列進行反轉。

最後對得到的最佳矩陣求和。

class solution  

// 遍歷除第一列外的元素,記錄各列為1的個數儲存入陣列cnt

for (int j = 1; j < a[0].size(); j++)

if (cnt[j-1] < a.size()/2+1)

cnt[j-1] = a.size() - cnt[j-1];}}

// 求和

翻轉矩陣後的得分

問題描述 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 翻轉是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任意次數的翻轉後,將該矩陣的每一行都按照二進位制數來解釋,矩陣的得分就是這些數字的總和。返回盡可能高的分數。示例 輸入 0,0,...

翻轉矩陣後的得分

翻轉矩陣後的得分 力扣861題。題目描述 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 移動是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任意次數的移動後,將該矩陣的每一行都按照二進位制數來解釋,矩陣的得分就是這些數字的總和。返回盡可...

翻轉矩陣後的得分(LeetCode)

題目鏈結 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 移動是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任意次數的移動後,將該矩陣的每一行都按照二進位制數來解釋,矩陣的得分就是這些數字的總和。返回盡可能高的分數。示例 輸入 0,0,...