Сложность: 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⃣Верните преобразованное изображение.
😎 Решение:
var flipAndInvertImage = function(A) {
const C = A[0].length;
for (let row of A) {
for (let i = 0; i < Math.floor((C + 1) / 2); ++i) {
let temp = row[i] ^ 1;
row[i] = row[C - 1 - i] ^ 1;
row[C - 1 - i] = temp;
}
}
return A;Ставь 👍 и забирай 📚 Базу знаний