Сложность: medium
Дано изображение размером m x n, состоящее из чёрных ('B') и белых ('W') пикселей. Верните количество чёрных одиночных пикселей.
Чёрный одиночный пиксель — это символ 'B', расположенный в такой позиции, где в той же строке и в том же столбце нет других чёрных пикселей.
Пример:
Input: picture = [["W","W","B"],["W","B","W"],["B","W","W"]]
Output: 3
Explanation: All the three 'B's are black lonely pixels.
👨💻 Алгоритм:
1⃣ Подсчёт количества чёрных пикселей в строках и столбцах:
Пройдите по всей матрице picture, для каждой чёрной клетки (x, y) увеличивайте rowCount[x] и colCount[y] на 1.
2⃣ Поиск одиночных чёрных пикселей:
Снова пройдите по всей матрице и для каждой чёрной клетки (x, y) проверьте значения rowCount[x] и colCount[y]. Если оба значения равны 1, увеличьте переменную answer на 1.
3⃣ Возврат результата:
Верните answer.
😎 Решение:
class Solution:
def findLonelyPixel(self, picture: List[List[str]]) -> int:
n = len(picture)
m = len(picture[0])
rowCount = [0] * n
columnCount = [0] * m
for i in range(n):
for j in range(m):
if picture[i][j] == 'B':
rowCount[i] += 1
columnCount[j] += 1
answer = 0
for i in range(n):
for j in range(m):
if picture[i][j] == 'B' and rowCount[i] == 1 and columnCount[j] == 1:
answer += 1
return answer
Ставь 👍 и забирай 📚 Базу знаний
