有乙個二維矩陣 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.length <= 20
1 <= a[0].length <= 20
a[i][j] 是 0 或 1
不用真的修改矩陣對於最左邊的列,最優情況下肯定都為1
class solution
else
}int k = max(ones, n - ones);
ret += k * (1 << (m - j - 1));
}return ret;
}};
861 翻轉矩陣後的得分
package com.heu.wsq.leetcode 861.翻轉矩陣後的得分 author wsq date 2020 12 7 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 移動是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任...
861 翻轉矩陣後的得分
貪心 為了確保得到的值最大,陣列第一列必須是1,首先就可以對二維陣列的第一列不是1的記錄進行反轉,然後再處理列,每列中的1的個數大於一半,就進行反轉。這樣就能確保得到的值最大。這是第一次過題 對二維陣列進行了反轉,其實不用,只需要求值就可以了。class solution for int i 1 i...
861 翻轉矩陣後的得分
題目描述 有乙個二維矩陣 a 其中每個元素的值為 0 或 1 移動是指選擇任一行或列,並轉換該行或列中的每乙個值 將所有 0 都更改為 1,將所有 1 都更改為 0。在做出任意次數的移動後,將該矩陣的每一行都按照二進位制數來解釋,矩陣的得分就是這些數字的總和。返回盡可能高的分數。示例 輸入 0,0,...