একটি সম দৈর্ঘ্যের অ্যারে দেওয়া আছে, যেখানে প্রতিটি সংখ্যা একটি ক্যান্ডির ধরন নির্দেশ করে। প্রতিটি সংখ্যা একই ধরনের একটি ক্যান্ডি বোঝায়। ক্যান্ডিগুলো ভাই এবং বোনের মধ্যে সমান সংখ্যায় বিতরণ করতে হবে। বোন কতটYPES of ক্যান্ডি পেতে পারে তার সর্বোচ্চ সংখ্যা বের করতে হবে।
উদাহরণ: ইনপুট [1,1,2,3] হলে আউটপুট ২। বোন [2,3] পেলে তার কাছে ২ ধরনের ক্যান্ডি থাকে, ভাই [1,1] পেলে ১ ধরনের।
সমাধানের ধাপসমূহ
- একটি সেট s সংজ্ঞায়িত করুন।
- অ্যারে candies-এর প্রতিটি উপাদান s-এ ইনসার্ট করুন।
- ফলাফল: min(s.size(), candies.size() / 2) রিটার্ন করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int distributeCandies(vector<int>& candies) {
unordered_set<int> s;
for (int i = 0; i < candies.size(); i++)
s.insert(candies[i]);
return min(s.size(), candies.size() / 2);
}
};
int main() {
Solution ob;
vector<int> v = {1,1,2,3};
cout << ob.distributeCandies(v);
return 0;
}
ইনপুট
{1,1,2,3}
আউটপুট
2