Сложность: 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.
😎 Решение:
var findLonelyPixel = function(picture) {
let n = picture.length;
let m = picture[0].length;
let rowCount = new Array(n).fill(0);
let columnCount = new Array(m).fill(0);
for (let i = 0; i < n; i++) {
for (let j = 0; j < m; j++) {
if (picture[i][j] === 'B') {
rowCount[i]++;
columnCount[j]++;
}
}
}
let answer = 0;
for (let i = 0; i < n; i++) {
for (let j = 0; j < m; j++) {
if (picture[i][j] === 'B' && rowCount[i] === 1 && columnCount[j] === 1) {
answer++;
}
}
}
return answer;
};Ставь 👍 и забирай 📚 Базу знаний