Welcome to Subscribe On Youtube
531. Lonely Pixel I
Description
Given an m x n
picture
consisting of black 'B'
and white 'W'
pixels, return the number of black lonely pixels.
A black lonely pixel is a character 'B'
that located at a specific position where the same row and same column don't have any other black pixels.
Example 1:
Input: picture = [["W","W","B"],["W","B","W"],["B","W","W"]] Output: 3 Explanation: All the three 'B's are black lonely pixels.
Example 2:
Input: picture = [["B","B","B"],["B","B","W"],["B","B","B"]] Output: 0
Constraints:
m == picture.length
n == picture[i].length
1 <= m, n <= 500
picture[i][j]
is'W'
or'B'
.
Solutions
-
class Solution { public int findLonelyPixel(char[][] picture) { int m = picture.length, n = picture[0].length; int[] rows = new int[m]; int[] cols = new int[n]; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (picture[i][j] == 'B') { ++rows[i]; ++cols[j]; } } } int res = 0; for (int i = 0; i < m; ++i) { if (rows[i] == 1) { for (int j = 0; j < n; ++j) { if (picture[i][j] == 'B' && cols[j] == 1) { ++res; break; } } } } return res; } }
-
class Solution { public: int findLonelyPixel(vector<vector<char>>& picture) { int m = picture.size(), n = picture[0].size(); vector<int> rows(m); vector<int> cols(n); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (picture[i][j] == 'B') { ++rows[i]; ++cols[j]; } } } int res = 0; for (int i = 0; i < m; ++i) { if (rows[i] == 1) { for (int j = 0; j < n; ++j) { if (picture[i][j] == 'B' && cols[j] == 1) { ++res; break; } } } } return res; } };
-
class Solution: def findLonelyPixel(self, picture: List[List[str]]) -> int: m, n = len(picture), len(picture[0]) rows, cols = [0] * m, [0] * n for i in range(m): for j in range(n): if picture[i][j] == 'B': rows[i] += 1 cols[j] += 1 res = 0 for i in range(m): if rows[i] == 1: for j in range(n): if picture[i][j] == 'B' and cols[j] == 1: res += 1 break return res
-
func findLonelyPixel(picture [][]byte) int { m, n := len(picture), len(picture[0]) rows := make([]int, m) cols := make([]int, n) for i := 0; i < m; i++ { for j := 0; j < n; j++ { if picture[i][j] == 'B' { rows[i]++ cols[j]++ } } } res := 0 for i := 0; i < m; i++ { if rows[i] == 1 { for j := 0; j < n; j++ { if picture[i][j] == 'B' && cols[j] == 1 { res++ break } } } } return res }
-
function findLonelyPixel(picture: string[][]): number { const m = picture.length; const n = picture[0].length; const rows: number[] = Array(m).fill(0); const cols: number[] = Array(n).fill(0); for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { if (picture[i][j] === 'B') { ++rows[i]; ++cols[j]; } } } let ans = 0; for (let i = 0; i < m; ++i) { for (let j = 0; j < n; ++j) { if (picture[i][j] === 'B' && rows[i] === 1 && cols[j] === 1) { ++ans; } } } return ans; }