翻轉矩陣後的得分

2021-10-14 15:23:15 字數 883 閱讀 4761

翻轉矩陣後的得分—力扣861題。

題目描述:

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

測試用例

輸入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]

輸出:39

解釋: 轉換為 [[1,1,1,1],[1,0,0,1],[1,1,1,1]] 0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15= 39

解題思路:

要求翻轉矩陣後的得分最大值,那麼翻轉後第一列一定都為1。

先把所有行翻轉,使其a[i][0]=1。

之後只需要按列統計0的個數count,小於等於a.length/2,則這一列不需要翻轉,1的個數為a.length/2-count,如果大於,則翻轉,翻轉之後1的個數為count。

**如下:

class

solution}}

int result=0;

for(

int i=

0;i.length;i++)}

if(count<=a.length/2)

//反之如果大於,則需要翻轉,翻轉後1的個數就為count;

result+=count*math.

pow(

2,a[0]

.length-i-1)

;}return result;

}}

翻轉矩陣後的得分

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

翻轉矩陣後的得分(LeetCode)

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

861 翻轉矩陣後的得分

package com.heu.wsq.leetcode 861.翻轉矩陣後的得分 author wsq date 2020 12 7 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 移動是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任...