ধরি আমাদের একটি ছবি (picture) আছে যা কালো (B) এবং সাদা (W) পিক্সেল দিয়ে গঠিত। আমাদের লক্ষ্য হলো কালো "lonely pixel"-এর সংখ্যা বের করা। ছবিটি ২D ক্যারেক্টার অ্যারে দিয়ে উপস্থাপিত, যেখানে 'B' = কালো, 'W' = সাদা।
একটি কালো lonely pixel হলো 'B' যেটি এমন একটি অবস্থানে আছে যাতে সেটির সারি (row) এবং কলাম (column)-এ অন্য কোনো কালো পিক্সেল নেই।
ইনপুট উদাহরণ:
| W | W | B |
| W | B | W |
| B | W | W |
আউটপুট: ৩। কারণ তিনটি 'B' সবই lonely pixel।
সমাধানের ধাপসমূহ:
n := picture.size()(সারি সংখ্যা)m := (n > 0 ? picture[0].size() : 0)(কলাম সংখ্যা)- দুটি অ্যারে
row[n]এবংcol[m]ডিফাইন করুন ret := 0, firstRow := 0i=0থেকেnপর্যন্ত লুপ:j=0থেকেmপর্যন্ত লুপ:- যদি
picture[i][j] == 'B'হয়:- যদি
picture[0][j] < 'Y' && picture[0][j] != 'V', তবেpicture[0][j]++ - যদি
i == 0,firstRow++ - অন্যথায় যদি
picture[i][0] < 'Y' && picture[i][0] != 'V', তবেpicture[i][0]++
- যদি
- যদি
i=0থেকেnপর্যন্ত লুপ:j=0থেকেmপর্যন্ত লুপ:- যদি
picture[i][j] < 'W' && (picture[0][j] == 'C' || picture[0][j] == 'X')হয়:- যদি
i == 0:ret += (ret + firstRow == 1 ? 1 : 0) - অন্যথায় যদি
picture[i][0] == 'C' || picture[i][0] == 'X':ret++
- যদি
- যদি
retরিটার্ন করুন
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int findLonelyPixel(vector<vector<char>>& picture) {
int n = picture.size();
int m = n ? picture[0].size() : 0;
vector<int> row(n);
vector<int> col(m);
int ret = 0;
int firstRow = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (picture[i][j] == 'B') {
if (picture[0][j] < 'Y' && picture[0][j] != 'V') {
picture[0][j]++;
}
if (i == 0)
firstRow++;
else if (picture[i][0] < 'Y' && picture[i][0] != 'V') {
picture[i][0]++;
}
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (picture[i][j] < 'W' && (picture[0][j] == 'C' || picture[0][j] == 'X')) {
if (i == 0)
ret += firstRow == 1 ? 1 : 0;
else if (picture[i][0] == 'C' || picture[i][0] == 'X')
ret++;
}
}
}
return ret;
}
};
int main() {
Solution ob;
vector<vector<char>> v = {{'W','W','B'},{'W','B','W'},{'B','W','W'}};
cout << (ob.findLonelyPixel(v));
}
ইনপুট
{{'W','W','B'},{'W','B','W'},{'B','W','W'}}
আউটপুট
3