Сложность: easy
Дано бинарное изображение размером n x n, необходимо перевернуть изображение по горизонтали, затем инвертировать его и вернуть результат.
Перевернуть изображение по горизонтали означает, что каждая строка изображения будет развернута.
Например, переворот строки [1,1,0] по горизонтали дает [0,1,1].
Инвертировать изображение означает, что каждый 0 заменяется на 1, а каждый 1 заменяется на 0.
Например, инверсия строки [0,1,1] дает [1,0,0].
Пример:
Input: image = [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1]]
Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].
Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]
👨💻 Алгоритм:
1⃣Переверните каждую строку по горизонтали, обменяв элементы слева направо и наоборот.
2⃣Инвертируйте каждую строку, заменив каждый 0 на 1 и каждый 1 на 0.
3⃣Верните преобразованное изображение.
😎 Решение:
class Solution {
/**
* @param Integer[][] $A
* @return Integer[][]
*/
function flipAndInvertImage($A) {
$C = count($A[0]);
foreach ($A as &$row) {
for ($i = 0; $i < (int)(($C + 1) / 2); ++$i) {
$temp = $row[$i] ^ 1;
$row[$i] = $row[$C - 1 - $i] ^ 1;
$row[$C - 1 - $i] = $temp;
}
}
return $A;
}
}Ставь 👍 и забирай 📚 Базу знаний