Сложность: 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 {
func flipAndInvertImage(_ A: [[Int]]) -> [[Int]] {
var A = A
let C = A[0].count
for i in 0..<A.count {
for j in 0..<(C + 1) / 2 {
let temp = A[i][j] ^ 1
A[i][j] = A[i][C - 1 - j] ^ 1
A[i][C - 1 - j] = temp
}
}
return A
}
}Ставь 👍 и забирай 📚 Базу знаний