1. 題目
給定一幅黑白像素組成的圖像, 計算黑色孤獨像素的數量。
圖像由一個由‘B’和‘W’組成二維字符數組表示, ‘B’和‘W’分別代表黑色像素和白色像素。
黑色孤獨像素指的是在同一行和同一列不存在其他黑色像素的黑色像素。
示例:
輸入:
[['W', 'W', 'B'],
['W', 'B', 'W'],
['B', 'W', 'W']]
輸出: 3
解析: 全部三個'B'都是黑色孤獨像素。
注意:
輸入二維數組行和列的範圍是 [1,500]。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/lonely-pixel-i
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
2. 解題
- 先記錄每行、每列各有多少黑色
- 共需遍歷2次矩陣
class Solution {
public:
int findLonelyPixel(vector<vector<char>>& picture) {
int m = picture.size(), n = picture[0].size(), i, j;
vector<int> r(m,0), c(n,0);
//對每行,每列的黑色進行計數
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
if(picture[i][j]=='B')
r[i]++, c[j]++;
int lonely = 0;
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
if(picture[i][j]=='B' && r[i]==1 && c[j]==1)
lonely++;
return lonely;
}
};
72 ms 9.5 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公衆號(Michael阿明),一起加油、一起學習進步!