1072。翻轉列以獲得最大數量的相等行
難度:中
主題:陣列、雜湊表、矩陣
給你一個 m x n 二進位矩陣。
您可以選擇矩陣中任意數量的列,並翻轉該列中的每個單元格(即,將單元格的值從 0 更改為 1,反之亦然)。
傳回經過一定次數的翻轉後所有數值都相等的最大行數.
範例1:
範例2:
範例 3:
約束:
提示:
解:
我們可以利用雜湊映射對可以透過翻轉某些列使其相同的行進行分組。可以變得相同的行具有相同的模式或互補的模式(位元否定)。
以下是逐步解決方案:
讓我們用 PHP 實作這個解:1072。翻轉列以獲得最大數量的相等行
<?php /** * @param Integer[][] $matrix * @return Integer */ function maxEqualRowsAfterFlips($matrix) { ... ... ... /** * go to ./solution.php */ } // Example usage $matrix1 = [[0, 1], [1, 1]]; $matrix2 = [[0, 1], [1, 0]]; $matrix3 = [[0, 0, 0], [0, 0, 1], [1, 1, 0]]; echo maxEqualRowsAfterFlips($matrix1) . "\n"; // Output: 1 echo maxEqualRowsAfterFlips($matrix2) . "\n"; // Output: 2 echo maxEqualRowsAfterFlips($matrix3) . "\n"; // Output: 2 ?>
如果您發現本系列有幫助,請考慮在 GitHub 上給
存儲庫一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大! 如果您想要更多類似的有用內容,請隨時關注我:
以上是翻轉列以獲得最大相等行數的詳細內容。更多資訊請關注PHP中文網其他相關文章!