《LeetCode 力扣》 - 1072. 按列翻转得到最大值等行数 (哈希计数)
《LeetCode 力扣》 - 1072. 按列翻转得到最大值等行数 (哈希计数)
- ref
- contact
- 每日一题
方法1 哈希计数
- 步骤
- 1、遍历每一行,将首位为1的进行翻转
- 2、记录翻转后的行,进行哈希计数
- 3、返回哈希中最大的次数;
- 复杂度
- 时间复杂度 O(m*n)
- 空间复杂度 O(m) (m行)
class Solution {
/**
* @param Integer[][] $matrix
* @return Integer
*/
function maxEqualRowsAfterFlips($matrix) {
foreach($matrix as $row) {
$tmp = [];
foreach($row as $item) {
if($row[0] == 1) {
$tmp[] = $item ^ 1;
} else {
$tmp[] = $item;
}
}
$key = implode('', $tmp);
$map[$key] = isset($map[$key]) ? ++$map[$key] : 1;
}
return max($map);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接