একটি ২D ম্যাট্রিক্স M দেওয়া আছে যা একটি ইমেজের গ্রে স্কেল প্রকাশ করে। আমাদের একটি স্মুথার ডিজাইন করতে হবে যাতে প্রতিটি পিক্সেলের গ্রে স্কেল তার ৮টি আশেপাশের পিক্সেল এবং নিজের গড় (ফ্লোর করা) হয়। যদি কোনো সেলের ৮টি আশেপাশের সেল না থাকে, তবে সম্ভাব্য সব পিক্সেল বিবেচনা করুন।
ইনপুট ৩x৩ ম্যাট্রিক্স সব ১ ছাড়া মাঝপথে ০ হলে আউটপুট সব ০ হবে।
সমাধানের ধাপসমূহ
- R := M-র সারি সংখ্যা, C := কলাম সংখ্যা
- d := {-1, 0, 1} অ্যারে সংজ্ঞায়িত করুন
- res ২D অ্যারে (R x C) তৈরি করুন
- প্রতিটি i, j এর জন্য:
- sum := 0, count := 0
- k, l ∈ {-1,0,1} এর জন্য m=i+k, n=j+l ভ্যালিড হলে sum += M[m][n], count++
- res[i][j] := sum / count
- res রিটার্ন করুন
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<vector<auto> > v){
cout << "[";
for(int i = 0; i= 0 && m < R && n >= 0 && n < C) ++count, sum += M[m][n];
}
}
res[i][j] = sum / count;
}
}
return res;
}
};
int main(){
Solution ob;
vector<vector<int>> v = {{1,1,1},{1,0,1},{1,1,1}};
print_vector(ob.imageSmoother(v));
} ইনপুট
{{1,1,1},{1,0,1},{1,1,1}}আউটপুট
[[0, 0, 0, ],[0, 0, 0, ],[0, 0, 0, ],]