একটি নাম্বার অ্যারে দেওয়া আছে, অ্যারেতে যেকোনো উপাদান মেজোরিটি এলিমেন্ট হবে যদি সেটি অ্যারে দৈর্ঘ্যের ১/২-এর চেয়ে বেশি বার আসে।
উদাহরণস্বরূপ:
যদি অ্যারে দৈর্ঘ্য ৭ হয়,
তবে যদি অ্যারেতে এমন কোনো উপাদান থাকে যা কমপক্ষে ৪ বার আসে, তবে সেটি মেজোরিটি মনে হবে। এবং এটি স্বতঃসিদ্ধ যে যেকোনো নির্দিষ্ট অ্যারেতে সর্বোচ্চ একটি মেজোরিটি এলিমেন্ট থাকতে পারে।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা পুনরাবৃত্ত মান বিশিষ্ট একটি নাম্বার অ্যারে নেয় এবং যদি অ্যারেতে মেজোরিটি এলিমেন্ট থাকে তবে true রিটার্ন করবে। যদি ऐसा কোনো উপাদান না থাকে, তবে false রিটার্ন করবে।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [12, 5, 67, 12, 4, 12, 4, 12, 6, 12, 12];
const isMajority = arr => {
let maxChar = -Infinity, maxCount = 1;
// এই লুপ মেজোরিটি এলিমেন্টের সম্ভাব্য প্রার্থী নির্ধারণ করে
for(let i = 0; i < arr.length; i++){
if(maxChar !== arr[i]){
if(maxCount === 1){
maxChar = arr[i];
}else{
maxCount--;
};
}else{
maxCount++;
};
};
// এই লুপ প্রার্থীটি আসল মেজোরিটি এলিমেন্ট কিনা চেক করে
const count = arr.reduce((acc, val) => maxChar===val ? ++acc : acc, 0);
return count > arr.length / 2;
};
console.log(isMajority(arr));
আউটপুট
এটি কনসোলে নিচের আউটপুট তৈরি করবে:
true