বাচ্চাদের কাছে কুকি বিতরণ করতে হবে। প্রতিটি বাচ্চার একটি লোভ ফ্যাক্টর (gi) আছে - কুকির ন্যূনতম আকার যা তাকে তৃপ্ত করবে। প্রতিটি কুকির আকার (sj) আছে। যদি sj >= gi হয়, বাচ্চা তৃপ্ত হবে। প্রতিটি বাচ্চা সর্বোচ্চ একটি কুকি পাবে। সর্বোচ্চ কতজন বাচ্চা তৃপ্ত করা যায় তা বের করুন।
উদাহরণ: g = [1,2], s = [1,2,3] হলে আউটপুট ২। দুটি বাচ্চা উভয়ই তৃপ্ত होয়।
সমাধানের ধাপসমূহ
- g এবং s অ্যারে দুটো সর্ট করুন।
- i := 0, j := 0।
- যখন i < g.size() এবং j < s.size():
- যদি g[i] <= s[j], i++।
- j++।
- i রিটার্ন করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int i = 0, j = 0;
while (i < g.size() && j < s.size()) {
if (g[i] <= s[j]) i++;
j++;
}
return i;
}
};
int main() {
Solution ob;
vector<int> v = {1,2}, v1 = {1,2,3};
cout << ob.findContentChildren(v, v1);
return 0;
}
ইনপুট
{1,2}, {1,2,3}
আউটপুট
2